Liquibase VS FLYWAY哪一个使用?

我需要为我的基于springboot / nodejs的应用程序使用数据库迁移工具/框架。 在探索了Liquibase和Flyway的function之后,我有点困惑,要用哪一个。 在回滚支持,数据库中立变更等方面吸引我对Liquibase,另一方面简单性(基于SQL),更好的程序和PL / SQL支持让我朝着Flyway。

在最终决定之前,需要更具体的数据点。

我已经使用了这两种工具,所以,这些是主要的区别。

迁飞

  1. 易于configuration – 你只需要一个文件夹的位置,并保持名称语法V1__file.sql,…
  2. 基于SQL的,但是您需要编写特定数据库引擎的正确语法(Mysql,DB2,…)
  3. 是基于Java的,所以添加自定义configuration来清理,执行等更容易。

Liquibase

  1. 需要一个主文件“changelog”来跟踪所有执行的变更集。
  2. 是基于XML的,所以你需要使用特定的liquibase标签来创buildSQL代码。 将代码迁移到不同的数据库引擎是完美的:您不需要更改任何内容,只需要数据库驱动程序就可以告诉liquibase如何从XML标记转换为正确的SQL语法。
  3. 如果你使用liquibase中的sql标记,那么你将不会利用第2点,所以最好使用Flyway。
  4. Liquibase提供了一个jar来自动将现有的数据库迁移到所有需要的XML文件,因此您不需要手动对其进行操作。 相当有用。

现在由您来决定您的项目需要什么,以后是否需要迁移到不同的数据库引擎等。

我用Liquibase。 对于企业级应用程序(在不同的团队中进行协作),Liquibase非常适合您。 我喜欢回滚function。

对于小型应用程序,Flyway将因简单性而变得更好。

Interesting Posts