Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在alembic中使用alter_列?_Python_Sqlalchemy_Alembic - Fatal编程技术网

Python 如何在alembic中使用alter_列?

Python 如何在alembic中使用alter_列?,python,sqlalchemy,alembic,Python,Sqlalchemy,Alembic,我正在用alembic编写一个迁移,但对我来说,将服务器默认值从某物更改为零似乎是不可能的 我的代码: op.alter_column("foo", sa.Column("bar", sa.DateTime(timezone=False), server_default=None, nullable=True)) 如果我在迁移后检查,默认值仍然是NOW()这不是op.alter\u column()的工作方式。向其传递有关更改内容的参数,而不是新的sa.Column实例 op.alter_co

我正在用alembic编写一个迁移,但对我来说,将服务器默认值从某物更改为零似乎是不可能的

我的代码:

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

如果我在迁移后检查,默认值仍然是NOW()

这不是
op.alter\u column()
的工作方式。向其传递有关更改内容的参数,而不是新的
sa.Column
实例

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

要将列重命名为Alembic 0.9.5,我必须将迁移更改为以下内容:

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

注意:您还必须指定
existing_type
才能运行
alter_column
命令似乎只有在某些情况下,
existing_type
参数才是必需的,例如对于某些MySQL操作。还有更多。如果你想支持sqlite,你需要在批处理中使用op.batch\u alter\u table('my\u table',schema=None)作为批处理:batch\u op.alter\u column('old\u coll\u name',new\u column\u name='new\u coll\u name')