2013-06-18 10 views
19

Ich konnte alembic --autogenerate für das Hinzufügen/Entfernen von Spalten verwenden.Kann Alembic Spaltenänderungen automatisch generieren?

Wenn ich jedoch zum Beispiel eine "URL" -Spalte von 200 Zeichen auf 2000 Zeichen ändern wollte, erkennt sie die Änderung nicht.

Wie kann ich Alembic (mit SQLAlchemy) machen, Änderungen erkennen und Skripte automatisch zu den "Größen" verschiedener Spalten meines Modells generieren und "alter_column" -Befehle für PostgreSQL erstellen?

Edit:

Warum alembic nicht automatisch hinzufügen:

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

Antwort

35

Sieht aus wie ich die Antwort auf reddit des/r/Kolben gefunden.

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

Fügen Sie einfach "compare_type = True" context.configure() Parameter in Ihrem env.py der "run_migrations_online" -Funktion.

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

Dies muss wirklich die Standardeinstellung sein, oder zumindest viel offensichtlicher, wie man es einschaltet. – user1175849

Verwandte Themen