2013-06-18 8 views
19

Podczas dodawania/usuwania kolumn mogłem używać alembic --autogenerate.Czy zmiany w kolumnie Autogenerate funkcji Autogenerate Alembic?

Jednak gdy chciałem zmodyfikować np. Kolumnę "url" z 200 znaków na 2000 znaków, nie wykryje ona zmiany.

Jak zrobić Alembic (używając SQLAlchemy), wykrywać zmiany i autogenerować skrypty do "rozmiarów" mojego modelu w różnych kolumnach i tworzyć polecenia "alter_column" dla PostgreSQL?

Edit:

Dlaczego nie automatycznie alembic dodać:

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

Odpowiedz

35

Wygląda Znalazłem odpowiedź na reddit/r/w kolbie.

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

Wystarczy dodać "compare_type = true" do context.configure() Parametry wewnątrz funkcji "run_migrations_online" Twój env.py użytkownika.

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

To naprawdę musi być domyślne lub przynajmniej bardziej oczywiste, jak go włączyć. – user1175849

Powiązane problemy