2013-06-18 5 views
19

Sono stato in grado di utilizzare alembic --autogenerate per quando si aggiungono/rimuovono colonne.Can Alembic Autogenerazione delle alterazioni di colonna?

Tuttavia, quando volevo modificare ad esempio una colonna "url" da 200 caratteri a 2000 caratteri, non rileva la modifica.

Come posso creare Alembic (utilizzando SQLAlchemy), rilevare le modifiche e generare automaticamente gli script sulle "dimensioni" del mio modello di varie colonne e creare comandi "alter_column" per PostgreSQL ??

Edit:

Perché non aggiunge automaticamente alambicco:

op.alter_column('mytable', 'url', type_=sa.String(2000), existing_type=sa.String(length=200), nullable=True) 

risposta

35

Sembra che ho trovato la risposta a/r/boccetta di reddit.

http://www.reddit.com/r/flask/comments/1glejl/alembic_autogenerate_column_changes/cale9o0

Just Add "compare_type = True" per context.configure() parametri all'interno funzione "run_migrations_online" del vostro env.py.

context.configure(
       connection=connection, 
       target_metadata=target_metadata, 
       compare_type=True 
       ) 
+6

Questo deve essere il valore predefinito, o almeno reso molto più evidente su come accenderlo. – user1175849