在使用 Flask、SQLAlchemy 和 Alembic 的平台上,我们经常需要创建具有自己资源集的新实例,包括一个数据库。
在创建新实例时,SQLAlchemy 的 create_all 会给我们一个包含所有更新的数据库,直到创建实例为止。但这意味着这个新实例没有旧实例所拥有的迁移历史记录。它没有指向最新迁移的 Alembic revisions 表。
因此,当更新旧实例(带有迁移历史记录)和没有迁移历史记录的新实例时,我们要么为新实例提供一组自定义的迁移(忽略比数据库本身旧的迁移),要么为其创建虚假的迁移历史记录并使用全局的迁移。对于这种情况,我们已经选择了后者。
相比于 create_all,制作一个根迁移来设置整个数据库,并运行所有迁移,是否是引导新实例数据库的更好选项?
我担心随着迁移数量的增加,这种方法的可扩展性会受到影响。
或许还有其他选择吗?
在创建新实例时,SQLAlchemy 的 create_all 会给我们一个包含所有更新的数据库,直到创建实例为止。但这意味着这个新实例没有旧实例所拥有的迁移历史记录。它没有指向最新迁移的 Alembic revisions 表。
因此,当更新旧实例(带有迁移历史记录)和没有迁移历史记录的新实例时,我们要么为新实例提供一组自定义的迁移(忽略比数据库本身旧的迁移),要么为其创建虚假的迁移历史记录并使用全局的迁移。对于这种情况,我们已经选择了后者。
相比于 create_all,制作一个根迁移来设置整个数据库,并运行所有迁移,是否是引导新实例数据库的更好选项?
我担心随着迁移数量的增加,这种方法的可扩展性会受到影响。
或许还有其他选择吗?