nous.migration è un altro strumento di database di migrazione schema basato SQLAlchemy.
Installazione
Per installarlo, aggiungere:
[Migrazione]
ricetta = zc.recipe.egg
uova =
& Nbsp; nous.migration
al buildout.cfg
Si potrebbe desiderare di aggiungere la pakcage autista databse e la vostra applicazione
pacchetto in questo modo:
[Migrazione]
ricetta = zc.recipe.egg
uova =
& Nbsp; psycopg2
& Nbsp; nous.some_app
& Nbsp; nous.migration
Configurazione
Aggiungi alla tua development.ini o qualche altro tipo di ini:
[Nous.migration]
app = app: occupato
pacchetto = busy.migration
migrator aspetta configurazione sqlalchemy di essere presente nella sezione di applicazione, ad esempio:
[App: occupato]
sqlalchemy.url = postgresql: /// sviluppo
Potrei aggiungere configurazione sqlalchemy alla sezione di migrazione anche se qualcuno chiederà.
È inoltre possibile aggiungere:
vcs = git
schema_diff_cmd = git diff src / occupato / modelli / schema.sql
in modo che il comando add_script sarebbe aggiungere i file al sistema di controllo di versione, e li popolano con il delta del schema automaticamente.
Queste due impostazioni potrebbero andare il setup.cfg in quanto non sono realmente distribuzione correlati e non sono mai necessari per eseguire l'applicazione.
Utilizzo
bin / migrare development.ini [aggiornamento | downgrade | installazione | add_script] [versione]
Integrazione con l'applicazione
Aggiungere qualcosa di simile a questo:
& Nbsp; & nbsp; & nbsp; motore = engine_from_config (conf, 'sqlalchemy.')
& Nbsp; & nbsp; & nbsp; DBMigrator (motore, 'busy.migration'). Set_up_migration (init_migration = dbsetup (), run_scripts = False)
al setup_app, o nel vostro initialize_sql
Dbsetup è una classe che ha un metodo "upgrade" che inizializza schema.
Si può fare in vari modi, è possibile aggiungere uno script di migrazione che imposta le tabelle e quindi migrare che utilizzando script di migrazione:
& Nbsp; & nbsp; & nbsp; DBMigrator (motore, 'busy.migration'). Set_up_migration (run_scripts = true)
Oppure si può avere uno schema canonico impostato e inizializzare tutto in una volta e basta contrassegnare tutti gli script come 'fatto'
& Nbsp; & nbsp; & nbsp; . DBMigrator (motore, 'busy.migration') set_up_migration (init_migration = dbsetup (), run_scripts = False)
Requisiti :
- < li> Python
I commenti non trovato