【发布时间】:2016-05-17 13:52:21
【问题描述】:
在使用 Flask、SQLAlchemy 和 Alembic 的平台中,我们经常需要使用自己的资源集(包括数据库)创建新的独立实例。
创建新实例时,SQLAlchemy 的create_all 为我们提供了一个数据库,其中包含在创建实例之前的所有更新,但这意味着这个新实例没有旧实例具有的迁移历史记录。它没有指向最新迁移的 Alembic 修订表。
因此,当需要更新旧实例(具有迁移历史记录)和更新没有迁移历史记录的实例时,我们必须为新实例提供一组自定义修订(忽略比数据库本身更旧的迁移)或创建一个为它伪造迁移历史并使用一组全局迁移。对于发生这种情况的几次,我们已经完成了后者。
进行根迁移以将整个数据库设置为第一次迁移之前的状态,然后运行所有迁移而不是 create_all 是引导新实例数据库的更好选择吗?
随着迁移数量的增加,我担心它的可扩展性。
可能还有其他选择吗?
【问题讨论】:
标签: python sqlalchemy flask-sqlalchemy alembic