我正在使用 Flyway Db 迁移,并且我已经下载了 Flyway zip 文件夹并将其放置到我的本地计算机中。
我的sql
文件夹中有两个文件,即V1__Create_person_table.sql
和V2__Add_people.sql
。
飞行路线信息
- Boxfuse 的 Flyway 社区版 5.2.4
- 数据库:jdbc:h2:file:./foobardb (H2 1.4)
架构版本:<< 空架构 >>
+-----------+---------+---------------------+------+--------------+---------+
| Category | Version | Description | Type | Installed On | State |
+-----------+---------+---------------------+------+--------------+---------+
| Versioned | 1 | Create person table | SQL | | Pending |
| Versioned | 2 | Add people | SQL | | Pending |
+-----------+---------+---------------------+------+--------------+---------+
迁徙路线迁移
- Boxfuse 的 Flyway 社区版 5.2.4
- 数据库:jdbc:h2:file:./foobardb (H2 1.4)
- 已成功验证 2 次迁移(执行时间 00:00.020s)
- 正在创建架构历史表:“PUBLIC”.“flyway_schema_history”
- 架构“PUBLIC”的当前版本:<< 空架构 >>
- 将架构“PUBLIC”迁移到版本 1 - 创建人员表
- 将架构“PUBLIC”迁移到版本 2 - 添加人员
- 已成功对架构“PUBLIC”应用 2 次迁移(执行时间 00:00.092s)
飞行路线信息
- Boxfuse 的 Flyway 社区版 5.2.4
- 数据库:jdbc:h2:file:./foobardb (H2 1.4)
架构版本:2
+-----------+---------+---------------------+------+---------------------+---------+
| Category | Version | Description | Type | Installed On | State |
+-----------+---------+---------------------+------+---------------------+---------+
| Versioned | 1 | Create person table | SQL | 2019-08-19 12:12:40 | Success |
| Versioned | 2 | Add people | SQL | 2019-08-19 12:12:40 | Success |
+-----------+---------+---------------------+------+---------------------+---------+
现在的问题是:如果我想更新或编辑以上两个 sql 文件中的某些内容,我该怎么做,我应该编辑现有文件版本 1、版本 2 和 保存文件并再次运行上述所有命令?
最佳答案
您不应该编辑现有的脚本。我必须添加一个新的,例如V3__Update_person_table.sql并正确更新它。
附注
在大型项目中,我们有数十个脚本,它们迭代地修改空数据库以达到当前状态。
之后,通常,当移动到下一个发行版本时,我们会将所有现有脚本合并为一个或两个(当我们不再需要保留历史记录时)。
注释
这是正确的。我们不会更改现有脚本(这是 CI/CD 的一部分)。所有更改都应添加新脚本。 Flyway 接受包含所有脚本的目录。
关于flyway - 如何在Flyway中编辑现有的SQL文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57551735/