alembic - 如何恢复部分执行的迁移?
问题描述
我最近执行flask db migrate
并在两者之间出现异常(详细信息)。迁移只是部分完成。
我做了什么
迁移看起来像这样:
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
...
op.add_column('users', sa.Column('registered_on', sa.DateTime(), nullable=False))
...
“registered_on”之前的一切都完成了。下面的一切都不是。当我flask db upgrade
再次执行时,它抱怨之前的列已经存在。
接下来,我尝试了flask db downgrade
,然后flask db upgrade
。那行得通,但是现在所有数据都丢失了(还不错,这是一个开发环境)。
在迁移仅部分运行后,我应该怎么做才能不删除数据库中的所有数据?
解决方案
修复迁移脚本中的错误后,您可以注释掉upgrade()
函数中在错误发生之前已经应用的操作。然后再次运行升级,以便执行其余操作。迁移脚本完全应用后不要忘记取消注释!
推荐阅读
- excel - excel按名称排序2列
- clickhouse - 使用 multiIf 修改字段
- swift - 带有标签图像和文本的 SwiftUI 菜单
- javascript - 在子组件中使用上下文 API 访问对象值
- php - Remove /?home/ from URL (Remove Controller Name from URL And Leave Only Method) | 代码点火器
- amazon-web-services - 描述成员 AWS 账户的 SCP 而不假设 AWS 管理账户
- r - 我想要使用 R 的最大样本的频率值
- java - sun.security.pkcs.ParsingException:ContentInfo 的长度无效
- twitter-bootstrap - 具有数据属性而不是 id 的数据目标
- android-management-api - 如何使用 Android Management API 请求托管 Play 商店集合中包含的应用程序列表