数据库迁移工具 Flyway vs Liquibase (一)

本文对比了两个流行的开源数据库迁移工具——Flyway和Liquibase。Flyway强调简单性和约定,支持多种数据库并提供JavaAPI,而Liquibase则允许使用SQL、XML等多种格式编写变更日志。两者都为数据库版本控制提供了便利。

theme: orange

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第28天,点击查看活动详情

🤞 个人主页:@青Cheng序员石头

我相信没有必要描述为什么数据库迁移工具的使用对于使用关系型数据库引擎的现代应用程序是至关重要的。我只想说,它们可以使我们的生活变得更加轻松,并帮助我们将复杂和重复的过程自动化。通过这篇文章,我将对两个最常见的开源迁移工具,Flyway和Liquibase之间的异同提供一些更深入的见解。

工具描述

首先对这两个工具进行快速描述。两个最流行的迁移工具,Flyway和Liquibase,为数据库提供了版本控制。Flyway使用SQL或Java来定义一个变化。相比之下,Liquibase提供了以SQL、XML、YAML和JSON格式编写变更的灵活性。

Flyway的详细描述

它的创造者是一家名为Redgate的公司,它被描述为一个开源的数据库迁移工具,它更倾向于简单性和惯例而不是配置。

截至目前,它支持目前使用的大多数数据库引擎,如Postgres、Oracle、SQL Server、DB2、H2、MariaDB和其他许多数据库。它还支持一些云基础数据库服务,如亚马逊RDS或谷歌云SQL或Heroku。

脚本可以用纯SQL编写(支持许多方言)或用Java编写(主要用于更复杂的转换)。它有一个命令行客户端,但它也提供Maven和Gradle插件。

更重要的是,它有Java API,也适用于Android。

对于那些使用.NET和C#的人来说,有一个名为Evolve的Flyway对应软件,所以如果你有兴趣,可以看看这个软件。它的GitHub页面的链接将在文章的最后。

Liquibase.png

Liquibase的详细描述

它开始于2006年,是一个用于数据库迁移的开源工具。

它是基于变化日志和变化集文件的概念,这些文件可以用SQL、XML、YAML、JSON来写。在那里,我们存储所有我们想在数据库结构中进行的改变。这些文件可以进一步用于将这些变化应用到任何其他数据库实例。

Liquibase支持后续的数据库。Postgres、Oracle、DB2、H2、MariaDB、SQL Server、SQLite,以及其他许多数据库。许多基于云的数据库也被支持,例如Azure SQL、Amazon RDS、Amazon Aurora。

你可以从shell中运行Liquibase迁移脚本,使用Maven Gradle甚至Ant等构建工具。此外,你可以生成纯SQL查询,可以由你的DBA-s/Ops/DevOps团队或任何正在照顾你的数据库的人进一步执行。

Liquibase.png


少年,没看够?点击石头的详情介绍,随便点点看看,说不定有惊喜呢?欢迎支持点赞/关注/评论,有你们的支持是我更文最大的动力,多谢啦!

SQLUtility - SQLServer 工具箱 软件说明:   在使用SQLServer企业管理器生成SQL脚本时,并没有按照数据库对象的依赖关系对脚本顺序进行排序。这个BUG导致了生成的脚本无法直接执行,开发人员必须手工对其进行排序或者寻找其他替代方案,从而增加了很大的工作量和麻烦。写本工具的初始原因就是为了解决上述问题,既然写好了,就应该和大家共享。在发布之前顺便又添加了清除事务日志的功能,以后有时间、有需要的话,打算添加更多的实用功能。希望这个小工具能给大家带来些帮助。 运行环境:   由于是使用.NET写的,所以运行前需要安装.NET运行环境,这可能会给您带来些麻烦(下载和安装运行环境),在此,我对所有受到影响的朋友表示歉意! 本工具支持SQLServer2000+sp2以上版本,希望大家帮忙测试、报告BUG或提出建议,欢迎到我的BLOG来讨论,谢谢! 运行环境下载地址(23M): http://www.microsoft.com/downloads/details.aspx?FamilyId=262D25E3-F589-4842-8157-034D1E7CF3A3&displaylang=en http://www.ustc9703.com/download/get.asp?id=21&type=1&url=1 http://cq.down.chinaz.com/down/NETFramework.exe 如何选择和连接数据库: • 先从下拉框中选择服务器 • 如果使用用户名和密码登录,则填入用户名和密码(不要选择“集成Windows认证”复选框) • 如果使用Windows认证登录,则选中“集成Windows认证”复选框 • 完成上述步骤后,就可以从下拉框中选择数据库了(您也可以点击“重新连接”以刷新数据库信息) • 选择好数据库后,就可以执行以下各项功能 SQL脚本排序: • 使用前请先在SQLServer企业管理器里生成SQL脚本,保存为文件 • 运行本程序,在主界面上选择数据库,点击“脚本排序”按钮进入排序界面 • 在脚本排序界面点“浏览”按钮选择刚才生成的文件,点击“开始排序”按钮 清除事务日志: • 运行本程序,在主界面上选择数据库,点击“清除日志”按钮 数据导出: • 运行本程序,在主界面上选择数据库,点击“数据导出”按钮进入数据导出界面 • 导出XML:在数据导出界面中选择要导出的数据表,点击“导出XML”按钮,选择要保存的文件后等待导出结束即可;导出的结果是XML文件,该文件可以用“数据导入”功能导入到目标数据库。 • 导出SQL:在数据导出界面中选择要导出的数据表,点击“导出SQL”按钮,选择要保存的文件后等待导出结束即可;导出的结果是SQL脚本,该脚本可以用查询分析器执行。 数据导入: • 运行本程序,在主界面上选择数据库,点击“数据导入”按钮进入数据导入界面 • 进入界面时会要求您选择数据文件,您也可以点击“打开XML数据文件”选择其他的数据文件 • 在数据导入界面中选择要导入的数据表,点击“数据检测”按钮可以检查目标数据库中是否有已存在的数据 • 在数据导入界面中选择要导入的数据表,点击“导入数据”按钮可以将所选数据导入到目标数据库 • 说明:导入过程中会自动处理Identity列,并且会根据表之间的依赖关系,先导入主键表再导入外键表 作者联系方式: Email : xian@vip.163.com Blog : http://www.cnblogs.com/happyprogram/
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值