【问题标题】:When should I start using flyway, at the start of development or at the first release?我应该什么时候开始使用 flyway,在开发开始时还是在第一个版本时?
【发布时间】:2018-07-04 11:12:52
【问题描述】:

我正在使用 spring boot 开始一个项目,但我不知道我应该什么时候开始使用 flyway。

就在现在,刚开始还是第一次发布时?

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

感谢您的回答。

【问题讨论】:

    标签: database spring flyway


    【解决方案1】:

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

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

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

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

    希望这会有所帮助。享受。

    【讨论】:

    • 当您说“当您的域或实体模型达到第一个稳定版本时”是指当所有模型都已创建并准备好使用时,或者当一小部分功能需求正在工作时?例如,当我在开发其他功能之前进行了有效的用户注册。谢谢你的回答。
    【解决方案2】:

    正如上面@saw303 所建议的那样,从第一次更改数据库开始,我会尽可能早地亲自为我推荐。

    通过在最早可行的时间点引入此功能,您可以及早优化构建和部署流程,从长远来看可以为您节省开支。它还强化了一项关键原则,即不应将更改应用于数据库。

    在结构可能不稳定且可能发生变化的早期阶段,这可能听起来违反直觉,但通过将脚本放置到位,它允许您使用清理任务,然后进行迁移。这将删除所有对象并根据您的脚本重新创建,这样可以节省时间,并且根据您的数据库的大小可能只需要几秒钟即可完成。

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

    我建议您观看此网络研讨会,因为它会为您提供一些关于如何最好地实施 flyway 的要点。

    Database Migration Patterns with Flyway

    最重要的是,有很多方法可以实现 flyway 以满足您的需求,并且不一定是一刀切,但您越早在项目中开始使用它,您就会了解最有效的方法并进行配置因此。

    【讨论】:

    • 非常感谢您的详细回答。我对“专业”编程比较陌生,目前我不知道如何使用开发环境。我目前正在独自完成我的第一个大项目,所以我边走边学。很高兴看到人们花时间帮助他人。非常感谢 cdavid 和 saw303。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    • 2012-06-15
    • 1970-01-01
    • 2012-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多