[英]SQLAlchemy, Alembic and new instances
在使用Flask,SQLAlchemy和Alembic的平台中,我们经常需要使用自己的一组资源(包括数据库)创建新的单独实例。
在创建新实例时,SQLAlchemy的create_all
为我们提供了一个数据库,其中包含创建实例时的所有更新,但这意味着此新实例没有旧实例具有的迁移历史记录。 它没有指向最新迁移的Alembic修订表。
因此,当需要更新旧实例(具有迁移历史记录)和没有迁移历史记录的较新实例时,我们必须为新实例提供一组自定义修订(忽略比数据库本身更早的迁移)或创建虚假迁移历史记录为它,并使用一组全球迁移。 有几次发生这种情况,我们已经做了后者。
是否进行了根迁移,设置整个数据库,就像在第一次迁移之前一样,然后运行所有迁移而不是create_all,这是引导新实例数据库的更好选择?
随着迁移数量的增加,我担心这种可扩展性。
是否还有其他选择?
如果您知道数据库的状态,则可以标记在实例中创建时所处的修订。
这是命令行的文档:
stamp 'stamp' the revision table with the given revision; don't run any migrations.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.