繁体   English   中英

SQLAlchemy,Alembic和新实例

[英]SQLAlchemy, Alembic and new instances

在使用Flask,SQLAlchemy和Alembic的平台中,我们经常需要使用自己的一组资源(包括数据库)创建新的单独实例。

在创建新实例时,SQLAlchemy的create_all为我们提供了一个数据库,其中包含创建实例时的所有更新,但这意味着此新实例没有旧实例具有的迁移历史记录。 它没有指向最新迁移的Alembic修订表。

因此,当需要更新旧实例(具有迁移历史记录)和没有迁移历史记录的较新实例时,我们必须为新实例提供一组自定义修订(忽略比数据库本身更早的迁移)或创建虚假迁移历史记录为它,并使用一组全球迁移。 有几次发生这种情况,我们已经做了后者。

是否进行了根迁移,设置整个数据库,就像在第一次迁移之前一样,然后运行所有迁移而不是create_all,这是引导新实例数据库的更好选择?

随着迁移数量的增加,我担心这种可扩展性。

是否还有其他选择?

如果您知道数据库的状态,则可以标记在实例中创建时所处的修订。

  1. 设置实例
  2. 运行create_all
  3. alembic head(确定脚本目录中的最新版本)
  4. alembic邮票

这是命令行的文档:

stamp 'stamp' the revision table with the given revision; don't run any migrations.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM