web-dev-qa-db-ja.com

alembicでalter_columnを使用する方法は?

私はalembicで移行を書いていますが、server_defaultsの値を何かから何も変更することは不可能のようです。

私のコード:

op.alter_column("foo", sa.Column("bar", sa.DateTime(timezone=False), server_default=None, nullable=True))

移行後に確認した場合、デフォルトはまだNOW()です

17
tapioco123

Alembic 0.9.5の時点で列の名前を変更するには、次のように移行を変更する必要がありました。

op.alter_column('my_table', 'old_col_name', nullable=False, new_column_name='new_col_name')
21
Iain Hunter

それはop.alter_column()がどのように機能するかではありません。新しいsa.Columnインスタンスではなく、何を変更するかについての引数を渡します。

op.alter_column('my_table', 'my_column', server_default=None)
9
davidism