Sto utilizzando Alembic per gestire le migrazioni per un database. Lo stesso database viene utilizzato da più pacchetti Python e ognuno di essi ha i propri percorsi di migrazione.Alambicco: durante la generazione automatica delle migrazioni come ignorare le tabelle del database da altri prodotti
Come posso dire ad Alembic di ignorare le tabelle di altri pacchetti durante la generazione di migrazioni automatiche? Per esempio, quando ho eseguito:
alembic -c development.ini revision --autogenerate -m "Initial migration"
mio file di migrazione Python contiene tabelle goccia per altri pacchetti (non nella corrente env.py Alambicco):
def upgrade():
### commands auto generated by Alembic - please adjust! ###
op.drop_table('table_from_another_package`)
posso modificare manualmente file di migrazione e rimuovere drop_table()
e create_table()
voci, ma questo è un lavoro soggetto a errori manuale. Preferisco evitare di generarli in primo luogo.
Buona domanda, anche se probabilmente non è un progetto così eccezionale per avere più prodotti che accedono allo stesso database. Almeno usi schemi diversi? O alcune convenzioni sui nomi? Non penso che questo sia supportato immediatamente, ma se dovessi farlo funzionare, probabilmente guarderei il codice che sta riflettendo il database ("Metadata" o "Engine") e trovo un modo per sovrascriverlo in modo che filtra * no i miei tavoli *. – van