数据库代码化(Database-as-Code)实战(二)
前言 在数据库代码化(Database-as-Code)实战一文中介绍了如何借助 Flyway 实现 migration based 的数据库迁移。但在实践过程中,发现了如下问题: 随着项目的发展,迁移脚本数量会越来越多,而全新部署时由于要执行所有的历史变更,部署时间会越来越长。 由于数据库的最终状态是由变更脚本依次执行形成的,这就导致了开发人员无法通过源码直观看到数据库的当前状态。 因为很多数据迁移场景涉及到字段的解析以及和第三方系统或工具的交互,使用 Python 脚本实现迁移过程会更加方便。但目前 Flyway 只支持执行 SQL 类型的迁移脚本。 为了解决上述问题,我们基于 migration based 方法,并借鉴了 Flyway 的设计思想,改进了原有的数据库代码化方案。 数据库代码化改进方案 迁移脚本命名规范 迁移脚本命名规范参考了 Flyway 的标准,但也增加了一些限制,下面对其进行说明: Prefix - 固定为V。 Version - 由日期和索引组成,格式固定为yyyy.mm.dd.index。其中 index 长度固定为 3,范围是 000 ~ 999,用于...