flyway - 如何在Flyway中编辑现有的SQL文件

标签 flyway

我正在使用 Flyway Db 迁移,并且我已经下载了 Flyway zip 文件夹并将其放置到我的本地计算机中。

我的sql文件夹中有两个文件,即V1__Create_person_table.sqlV2__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/

相关文章:

java - 在运行时从头开始设置数据库

java - Flyway自动生成迁移SQL

spring-boot - 使用 Flyway 设置多个数据库

java - 尝试将 flyway 用于多个数据库实例

auto-update - 如何处理使用 Liquibase 时自动更新脚本所做的数据库更改?

linux - windows版本和linux版本有什么区别?

java - 从 persistence.xml 初始化 Flyway 数据源

mysql - 缓慢的更改查询 MySql openjpa

java - Flyway 是否知道数据库状态或它是否专门验证迁移文件的不变性?

java - 使用功能分支时如何使用 Flyway