我应该何时开始使用flyway,在开发开始时还是在第一次发布时?

时间:2018-01-25 08:50:30

标签: database spring flyway

我正在开始一个春季启动的项目,我不知道什么时候才能开始使用flyway。

刚刚开始时还是第一次发布时?

可能这是一个新手问题,但我本周末听说过飞路基地,这对我来说是个新事物。

感谢您的回答。

2 个答案:

答案 0 :(得分:4)

我建议尽早使用Flyway。这使您有机会习惯工作流程并在开发环境中犯错误。

当您的域或实体模型达到第一个稳定版本时,我会开始使用它。通过域模型的第一个稳定版本,我的意思是当所有JPA实体及其关系按照您希望的那样实现时。

然后使用例如Hibernate SchemaExport生成DDL,并创建包含所有CREATE TABLEALTER TABLE语句的第一个Flyway迁移脚本。

我建议使用此过程,因为它允许您定义数据库的1.0版。 JPA实体的每次更改都可能会强制您迁移数据库。因此,我建议首先设计您的实体,然后编写迁移脚本。

希望这会有所帮助。请享用。

答案 1 :(得分:2)

正如上面提到的@ saw303我建议尽早并亲自为我从第一次更改到数据库。

通过在最早的可行点引入它,它将允许您尽早优化构建和部署过程,从长远来看可以节省您的时间。它还强化了一项关键原则,即不应将变更应用于数据库,而不是飞路。

在结构可能不稳定且可能发生变化的早期阶段,这可能听起来很直观,但是通过使用脚本,它可以让您使用干净的任务,然后进行迁移。这会丢弃所有对象并根据您的脚本重新创建,这样可以节省时间,并且根据数据库的大小可能需要几秒钟才能完成。

我还建议您仔细考虑您的版本控制方法以及如何管理不同的环境,特别是如果某些脚本仅适用于Dev或测试等。我们最近采用的方法是使用locations属性指定多个路径。每个环境都使用一个公共文件夹,后跟该环境的特定位置。

我建议观看本次网络研讨会,因为它会给你一些关于如何最好地实施flyway的好点。

Database Migration Patterns with Flyway

最重要的是,有很多方法可以实现飞路以满足您的需求,并且不一定非常适合所有人,但是在您的项目中开始使用它之前,您将了解到什么效果最好,并相应配置。