【发布时间】:2018-07-04 11:12:52
【问题描述】:
我正在使用 spring boot 开始一个项目,但我不知道我应该什么时候开始使用 flyway。
就在现在,刚开始还是第一次发布时?
这可能是一个新手问题,但我这个周末听说过飞行基地,对我来说是一个新事物。
感谢您的回答。
【问题讨论】:
我正在使用 spring boot 开始一个项目,但我不知道我应该什么时候开始使用 flyway。
就在现在,刚开始还是第一次发布时?
这可能是一个新手问题,但我这个周末听说过飞行基地,对我来说是一个新事物。
感谢您的回答。
【问题讨论】:
我建议尽早使用 Flyway。这使您有机会习惯工作流程并在开发环境中犯错误。
当您的域或实体模型达到第一个稳定版本时,我会开始使用它。我的域模型的第一个稳定版本是指当所有 JPA 实体及其关系都按照您希望的方式实现时。
然后使用例如 Hibernate SchemaExport 生成 DDL,并创建包含所有 CREATE TABLE、ALTER TABLE 语句的第一个 Flyway 迁移脚本。
我推荐这个过程,因为它允许您定义数据库的 1.0 版本。 JPA 实体的每次更改都可能会迫使您迁移数据库。因此我建议先设计实体,然后编写迁移脚本。
希望这会有所帮助。享受。
【讨论】:
正如上面@saw303 所建议的那样,从第一次更改数据库开始,我会尽可能早地亲自为我推荐。
通过在最早可行的时间点引入此功能,您可以及早优化构建和部署流程,从长远来看可以为您节省开支。它还强化了一项关键原则,即不应将更改应用于数据库。
在结构可能不稳定且可能发生变化的早期阶段,这可能听起来违反直觉,但通过将脚本放置到位,它允许您使用清理任务,然后进行迁移。这将删除所有对象并根据您的脚本重新创建,这样可以节省时间,并且根据您的数据库的大小可能只需要几秒钟即可完成。
我还建议您仔细考虑您的版本控制方法以及如何管理不同的环境,特别是如果某些脚本仅适用于开发或测试等。我们最近采用的方法是使用位置属性来指定多个路径。每个环境都使用一个公共文件夹,后跟该环境的特定位置。
我建议您观看此网络研讨会,因为它会为您提供一些关于如何最好地实施 flyway 的要点。
Database Migration Patterns with Flyway
最重要的是,有很多方法可以实现 flyway 以满足您的需求,并且不一定是一刀切,但您越早在项目中开始使用它,您就会了解最有效的方法并进行配置因此。
【讨论】: