Att*_*k68 6 database sqlalchemy alembic
我有一个数据库升级迁移,我想应用于数据库列:
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
with op.batch_alter_table('details') as batch_op:
batch_op.alter_column('details', 'non_essential_cookies',
existing_type=sa.BOOLEAN(),
nullable=False)
# ### end Alembic commands ###
Run Code Online (Sandbox Code Playgroud)
我正在实施批处理模式,因为不支持 ALTER,并且之前我收到了此错误:sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) near "ALTER":。但是,我希望批处理模式能够工作,但现在我收到了新的错误:
TypeError: <flask_script.commands.Command object at 0x1149bb278>: alter_column() got multiple values for argument 'nullable'.
我的表中只有一个元组,并且相关属性不为 NULL,因此数据库迁移是有效的。我只是不明白为什么有多个值
来自文档:
\n\n\n\n\n该方法用作上下文管理器,它返回\n BatchOperations 的实例;此对象与操作相同,只是省略了表名和架构名称。
\n
这里的关键点是,在实例上调用操作时,您不必提供表名BatchOperations。
的签名alter_column是:
alter_column(table_name, column_name, nullable=None, server_default=False, new_column_name=None, type_=None, existing_type=None, existing_server_default=False, existing_nullable=None, schema=None, **kw)\nRun Code Online (Sandbox Code Playgroud)\n\n所以从你的代码来看:
\n\nwith op.batch_alter_table(\'details\') as batch_op:\n batch_op.alter_column(\'details\', \'non_essential_cookies\',\n existing_type=sa.BOOLEAN(),\n nullable=False)\nRun Code Online (Sandbox Code Playgroud)\n\n\'details\'正在被传递给column_name,并且\'non_essential_cookies\'被nullable作为位置参数传递给 。nullable当您稍后使用关键字 arg,指定 Again 的值时,会导致此问题nullable=False。
| 归档时间: |
|
| 查看次数: |
7586 次 |
| 最近记录: |