Flyway DB 脚本拼写错误

问题描述 投票:0回答:1

我有一个 Flyway 脚本,它创建一个新表以将报告数据存储到另一个表的数据中。

我在从 Java 对象剪切和粘贴时犯了一个错误,正如您在下面的脚本中看到的,“data_Item_id”应该读取“data_item_id”。现在,在数据库中,外键已以小写形式生成,因此现在唯一的缺陷似乎是在我的 Flyway 脚本中。

我不能只更改脚本,因为这会导致 Flyway 抛出错误,因为脚本不再是原始的,所以有人可以建议一种方法来纠正这个拼写错误吗?也许一个新脚本可以删除引用并重新创建它?

create table if not exists reporting
(
    reporting_id      BIGSERIAL   unique not null,
    data_item_id      BIGINT references data_item (data_Item_id) not null,
    address           VARCHAR,
    name              VARCHAR,
    primary key (reporting_id)
);
sql postgresql flyway
1个回答
0
投票

您应该能够修复该文件,然后运行

flyway repair
来更新校验和。也就是说,如果 Flyway 抱怨这一点,则将假定它已“成功”运行。如果只有一个数据库,快速修复方法是手动修复,然后更新脚本并运行修复。

或者,您可以“向前修复”,即添加另一个脚本,正如您所说,撤消之前的更改并重做它。如果您有多个环境,并且此迁移已部署到某些环境,但未部署到其他环境,则向前修复可能是正确的做法。

如果您有 Teams 版本,您可以创建一个

undo
脚本来取消创建,在运行该脚本的环境中运行该撤消操作,然后修复该脚本并运行修复,或者创建一个新的迁移,然后使用
 SkipExecute
关于“坏人”

© www.soinside.com 2019 - 2024. All rights reserved.