Java Dropwizard:对基于云的应用程序使用迁移

Java Dropwizard:对基于云的应用程序使用迁移,java,rest,cloud,liquibase,dropwizard,Java,Rest,Cloud,Liquibase,Dropwizard,我们有一个应用程序,即公开RESTful web服务,我们的目标是将此应用程序部署到云中。我们需要在云中的某个数据库实例上一次性为应用程序设置一个数据库模式。 有人能告诉我,在一次性数据库模式设置中使用带有liquibase的迁移是否是一种好方法吗。我们将使用alter脚本,以防在将来的版本中需要修改DDL。如果我错了,有人会阻止我,但事实上,您的应用程序将在云端上被剥离,这只意味着它将位于外部公司托管的虚拟服务器上,在您提出问题的情况下,这是不可能的 因此,问题是“数据库版本化系统在一个具有目

我们有一个应用程序,即公开RESTful web服务,我们的目标是将此应用程序部署到云中。我们需要在云中的某个数据库实例上一次性为应用程序设置一个数据库模式。
有人能告诉我,在一次性数据库模式设置中使用带有liquibase的迁移是否是一种好方法吗。我们将使用alter脚本,以防在将来的版本中需要修改DDL。

如果我错了,有人会阻止我,但事实上,您的应用程序将在云端上被剥离,这只意味着它将位于外部公司托管的虚拟服务器上,在您提出问题的情况下,这是不可能的

因此,问题是“数据库版本化系统在一个具有目标稳定shema的数据库上液化是否值得”

从绝对意义上讲,这可能被认为是过火了,许多大公司仍然使用简单的sql脚本来管理数据库模式的演变。您可以简单地导出开发数据库的最终构建脚本并继续

但是,因为您了解Liquibase,所以开销非常便宜,如果您稍后不得不修改tour shema,那么使用的舒适性非常重要


因此,是的,我认为这是一个相当好的实践(比在生产服务器问题的压力下手动应用脚本更安全),它花费了一到两个小时(假设您知道如何使用该工具)并且在处理生产数据库的热修复时可以节省几十个。

我假设您将在多个地方部署此应用程序-不仅是云中的生产,还包括开发服务器、测试服务器、暂存等。如果这是真的,然后,在我看来,您肯定希望有一个关于如何更改数据库模式的过程

对我来说,在我从事软件开发20多年的过程中,我看到了一些我现在使用的东西,这些东西在我开始时并不常用,但现在已经成为我从事的任何项目的“基线”实践。是的,我以前在没有源代码管理的情况下工作,但现在这绝对是必须的。我以前写软件时没有测试,但现在没有了。我过去一直工作,没有连续的整合,但这是另一个我认为必须具备的实践。我的必备清单中最近增加了某种自动数据库迁移过程

此外,由于Liquibase是Dropwizard的内置组件,我看不出有任何理由不使用它