Flyway对比Liquibase(转)
数据库迁移工具. 很多应用的运行是需要数据库支持的,而随着快速迭代,产品更替的节奏加快,除了产品本身需要不断更新以外,数据库也需要做出合适的管理了。 为什么需要数据库迁移管理 比如第一个版本的产品只包含了最基本的功能,而第二版本就需要增加评论功能,这就涉及到数据结构的修改(包括创建新表,修改旧表的列,增加已有表的列等等)。直接进入产品数据库修改数据库并不适合快速的开发节奏,不仅仅不安全,更多的情况下数据库可能并不对外或者并不适合对外直接暴露连接,比如PAAS平台的数据库以服务的形式直接提供。 对比代码管理的一些实践,很明显在数据库方面做的还欠缺很多。比如代码管理中我们有 版本管理(svn,git等等) 持续集成技术 良好的发布工具和流程 而在数据库方面会遇到很多问题 某台数据库现在是什么状态 修改变更的脚本是否已经应用 对于生产环境的紧急修复有没有被应用在测试环境 如何创建一个新的数据库实例 数据库迁移工具可以很好的管理这些问题,并提供了以下特性 从迁移脚本中创建新的数据库 检查数据库状态 从一个版本快速到达另外一个版本 Flyway和Liquibase 数据库迁移工具很多,这里我们选择Flyway和Liquibase来说主要是两个原因,一是它们都是Java生态圈的,其次就是Spring Boot提供了这两者的内建支持,可以很快应用到产品中。 Flyway相对简单