2014-07-23 12 views
5

Voglio usare flask peewee come ORM per un db relazionale (MySQL) ma il mio problema sono i cambiamenti nella struttura dei modelli ... come l'aggiunta di nuovi attributi per un modello (questo significa colonne in db). Voglio sapere se posso farlo automaticamente senza scrivere SQL manualmente?Can flask-peewee fa la migrazione?

risposta

5

Sembra che il modulo Peewee supporti le migrazioni.

http://peewee.readthedocs.org/en/latest/peewee/playhouse.html#schema-migrations

+0

Dipende da ciò che si desidera da uno strumento di migrazione. Alcuni strumenti di migrazione gestiscono il controllo delle versioni dei dati e applica automaticamente le migrazioni corrette per aggiornare il database in modo che corrisponda agli schemi correnti. Il modulo di migrazione peewee incorporato non lo fa. Aggiunge o rimuove solo le colonne, in base a ciò che gli dicono di fare. –

3

Abbiamo sviluppato https://github.com/keredson/peewee-db-evolve per l'uso della nostra azienda che suona come può essere utile per voi.

Piuttosto che scrivere manualmente le migrazioni, db-evolve calcola la differenza tra lo schema esistente e i modelli definiti. Quindi esegue un'anteprima e applica i comandi SQL non distruttivi per allineare gli schemi. Abbiamo trovato che è un modello molto più robusto per la gestione degli schemi. (Ad esempio, il passaggio tra i rami arbitrari con diverse modifiche dello schema è banale questo modo, contro praticamente impossibile w/migrazioni creati manualmente.)

Esempio:

enter image description here

pensare ad esso come un non- versione distruttiva di Peewee create_tables(). (In effetti lo usiamo esattamente per tutto il tempo, per costruire lo schema da zero nei test.)

Problemi correlati