数据库变更管理 Database Migration

代码化的数据库版本控制, 是有效管理数据库变更的利器, 这样的工具一般称为 database migration tool. 这种工具是DevOps在数据库领域的运用之必备。

Database Migration Tool的功能

一个好用的Database Migration Tool通常具有以下功能:

  1. 既支持使用我们拿手的编程语言来编写, 又支持SQL及数据库扩展的SQL语法编写, 还支持将应用开发语言编写的变更翻译成SQL格式的. 从而满足开发, 测试, 运维及数据库管理等多种角色的需要.
  2. 支持升级(upgrade)和降级(undo, downgrade).
  3. 既支持命令行执行, 又有API可以集成到自动化流程中.
  4. 既支持从零开始维护数据库的变更记录, 也支持中途转入使用该工具来管理变更.
  5. 支持预览模式, 方便变更审核.

本文接下来介绍几种常见的此类工具.

Java - Liquibase

Liquibase网址: http://www.liquibase.org/index.html

Liquibase以XML格式表达ChangeSets, 以XML, JSON, YAML, SQL等格式描述changelog.

Liquibase的商业化版本为Datical, 其团队的重心转到了Datical上, 因此Liquibase的网站看起来也比较陈旧.

Java - Flyway …

Continue Reading