ciao a tutti, acari, picari e via dicendo,
desidero dirvi che ho pubblicato su github un piccolo programma
https://github.com/peppelinux/pyDBsync
Questo altro non è che una comoda scorciatoia, interamente ad oggetti (3 classi, niente di chè)
che, grazie ad SQLAlchemy e SQLautocode, ci consente di syncronizzare databases diversi purchè abbiano lo stesso schema di tabelle.
come sappiamo SQLAlchemy supporta diversi DB (
http://docs.sqlalchemy.org/en/latest/core/engines.html)
Sebbene esistano diversi tool (a pagamento) che svolgono questo sporco compito
ho deciso di scriverlo ex-novo inquanto in una precedente esperienza lavorativa mi sono trovato a
sincronizzare verso un host remoto in produzione soltanto alcune tabelle e non tutto il database ( metti caso un sito on-line non può sovrascrivere alcune tabelle provenienti da una fonte off-line di test )
l'innovazione rispetto a tanti suoi colleghi è che pySyncDB supporta le chiavi primarie composite, ovvero
il male.
Purtroppo sappiamo che il male non si sradica facilmente e, a livello computazionale, rallenta parecchio.
Intanto, nel mondo reale, ognuno programma a modo suo e qualcuno, sovente, deve sobbarcarsi i problemi degli altri prima di risolverli :)
La release è minimale per venire a capo di questo problema, è stata testata e sicuramente, con il contributo della comunità, passivo o attivo che sia, potrà vivere rosei sviluppi (rimando al file TODO).
L'iniziativa tende a cogliere anche gli insulti, in caso qualcuno si rendesse conto che la ruota sia stata inventata ennesimamente... Ma ricordate: chiavi composite, Db in produzione che non può essere svuotato, RDBMS diverso e update asincrono, quindi niente replication schema, binlog o altre finezze (in sintesi: il male).
Buon inizio di settimana
giuseppe