将 Flyway 添加到已投入生产的项目中
Posted
技术标签:
【中文标题】将 Flyway 添加到已投入生产的项目中【英文标题】:Add Flyway to a project already in production 【发布时间】: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。
【参考方案1】:
你绝对可以。核心概念是确保您为所有未来开发建立基线起点。您可以通过以下两种方式之一执行此操作。您可以使用Baseline Migrations 的概念来设置您现有的脚本。或者,您只需忽略现有结构(有点)并确定您在哪里beginning baseline。然后,您从该点开始创建迁移。无论哪种方式都会奏效。由您决定哪种方法最适合您的情况。
【讨论】:
以上是关于将 Flyway 添加到已投入生产的项目中的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Laravel 身份验证添加到已启动的 Laravel 项目中?