数据库迁移、架构设计与DevOps实践
1. 数据库迁移处理
在关系型数据库中处理变更需要特别考虑。关系型数据库同时存储数据及其结构,升级数据库模式与升级程序二进制文件面临不同挑战。升级应用二进制文件时,通常停止应用、升级后再启动,无需过多关注应用状态;而升级数据库时,必须考虑状态,因为数据库包含大量状态信息。
为描述数据库结构变更,需发出变更结构的命令。变更前后的数据库结构可视为不同版本,那么如何跟踪数据库版本呢?
常见的数据库迁移系统采用以下方法:
- 向数据库添加存储数据库版本的表。
- 跟踪数据库变更命令,并将其分组到版本化的变更集中。例如,Liquibase将变更存储在XML文件中,Flyway则将变更集处理为单独的SQL文件,复杂转换时也可用Java类。
- 当Liquibase被要求升级数据库时,它会查看元数据表,确定要运行哪些变更集以使数据库达到最新版本。
| 数据库迁移系统 | 变更集存储方式 |
|---|---|
| Liquibase | XML文件 |
| Flyway | 单独SQL文件或Java类 |
| Migratus(Clojure生态系统) | 类似方式 |
2. 滚动升级
数据库迁移时,
数据库迁移、架构设计与DevOps实践
超级会员免费看
订阅专栏 解锁全文
1271

被折叠的 条评论
为什么被折叠?



