【问题标题】:Add Flyway to a project already in production将 Flyway 添加到已投入生产的项目中
【发布时间】:2021-12-27 22:28:09
【问题描述】:

我正在开发一个没有 Flyway 库的 JAVA 项目,该应用程序使用 PosgreSQL 数据库。 数据库、表、索引...的创建是通过在数据库服务器上执行的 SQL 指令脚本完成的。

我现在想使用 Flyway 进行未来的数据库修改,但我不知道是否可以即时集成它?你能确认这是可能的吗?如果是这样,是否需要设置任何特定配置?

非常感谢。

【问题讨论】:

  • 是的,有可能。 Flyway - 在其核心 - 执行.sql-files。如果我们防御性地编写初始.sql文件(捕获数据库的当前状态)(即使用CREATE TABLE IF NOT EXISTS ...),那么这应该是可能的。因此,第一次迁移应该捕获数据库的当前状态。我们要捕获数据库的整个状态,包括触发器、物化视图、函数……。如果“基础”做好了,我们只会通过新的迁移文件来修改数据库架构。
  • 查看 FlywayDB.org 页面,Existing Database Setup

标签: java spring flyway


【解决方案1】:

你绝对可以。核心概念是确保您为所有未来开发建立基线起点。您可以通过以下两种方式之一执行此操作。您可以使用Baseline Migrations 的概念来设置您现有的脚本。或者,您只需忽略现有结构(有点)并确定您在哪里beginning baseline。然后,您从该点开始创建迁移。无论哪种方式都会奏效。由您决定哪种方法最适合您的情况。

【讨论】:

    猜你喜欢
    • 2020-11-02
    • 2011-05-01
    • 1970-01-01
    • 2020-04-15
    • 2018-06-06
    • 2018-04-29
    • 2014-11-05
    • 2021-11-05
    • 2013-04-24
    相关资源
    最近更新 更多