为什么和什么时候Liquibase?

我试图在堆栈溢出search这个问题,但无法find任何问题。 我是新的liquibase,想知道为什么liquibase? 何时应该在项目中使用液化石油气?

我知道这是为了将所有的数据库更改保留在一个地方,但类似的可以通过在一些存储库系统中创build一个简单的sql文件并不断更新。

自我pipe理的模式创build文件和Liquibase(或其他模式迁移工具)之间的主要区别在于后者提供了模式更改日志。 这是随时间变化的模式变化logging。 它允许数据库devise人员指定模式中的更改 ,并根据需要启用程序升级或降级模式。

还有其他的好处,比如:

  • 数据库厂商的独立性(这是值得怀疑的,但他们尝试)
  • 自动化文档
  • 数据库模式差异

一个替代工具是飞路 。

如果您需要或需要自动pipe理模式更新而不丢失数据,则可以select使用模式迁移工具。 也就是说,在将系统部署到客户站点或稳定的testing环境等长期生存环境之后,您希望架构发生更改。

当我们在修改模式时,我已经看到了liquibase在开发人员之间创造了纪律。 你不能去覆盖其他开发者的改变和执行。 而是创build自己的更改集,将其添加到要执行的更改序列的末尾。 这也明确了什么时候和谁带来了什么变化。

模式维护的一个非常“版本化”的方法。

对于初学者来说,它确实给人一种“不必要的工作”的印象。

我相信Liquibase是伟大的,当你的哲学是数据库是事后才想到的。 这种理念已经造成了大部分生产中的不良数据库 – 而且大部分都是不好的。 一个数据库应该被devise成完整的整个业务系统的视图,而不是由各自工作的应用程序开发人员拼凑而成。 后一种方法导致了解决方法,非规范化的数据,表之间的关系不良,业务领域的重复,以及由于问题导致客户在部署后不久讨厌的整体凌乱,高维护成本的系统。 如果一个数据库被devise成能够准确地反映业务关系,那么它的使用寿命将是5倍,并且比其中的一个零碎的devise好5倍。

Liquibase本身并不是一个问题,但它使得应用程序开发人员可以devise数据库。 那就是问题所在。