Alembic 迁移

bp alembic

从 SQLALChemy-migrate 迁移到 Alembic 作为维护 SQL 仓库的工具。

问题描述

OpenStack 社区正在逐步放弃使用 sqlalchemy-migrate,转而使用 Alembic。为了让社区内的各个项目有时间进行切换,OpenStack 正在维护 sqlalchemy-migrate 的一个分支。Keystone 需要随之行动,否则我们将使用一个不再受支持的工具。

提议的变更

继续使用 sqlalchemy-migrate 处理当前的一组迁移。所有新的迁移将使用 Alembic。

在升级时,Alembic 迁移将在 sqlachemy-migrate 迁移之后运行,反之在降级时则相反。将使用 oslo.db 的 migration_cli 工具。

在两个版本中,我们应该能够将最后基于 sqlalchemy-migrate 的迁移合并到一个基于 Alembic 的迁移中。

安全影响

通知影响

其他最终用户影响

性能影响

其他部署者影响

开发人员影响

需要迁移的现有模块需要在 “migrate_repo” 旁边创建一个 “alembic” 目录。可以使用模块目录中的 alembic init alembic 命令来完成。

实现

负责人

主要负责人

其他贡献者

工作项

  • 开始使用 oslo.db 中的 migration_cli,并禁用 Alembic

  • 创建 Alembic 仓库,替换现在使用 sqlalchemy-migrate 的位置,添加一个要求,如果需要迁移则必须有 Alembic 仓库,并移除对 “repo_migrate” 的要求。

依赖项

此功能需要 Keystone 的一个新依赖项 — “Alembic”。现在 Alembic 无论如何都是 oslo.db 所必需的,而 oslo.db 是 Keystone 的一个必需项。

文档影响

  • 描述如何使用 Alembic 创建迁移

参考资料