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 创建迁移