使用Flyway更改数据库迁移脚本

时间:2020-06-18 17:27:17

标签: postgresql flyway dbmigrate

我不太确定自己做错了什么。但这导致其他服务弄乱了其他数据库迁移内容。

希望有人会帮助我解决这个问题。

谢谢!

我们有一个创建表的数据库迁移脚本

V6__add_subscription_tables.sql

CREATE TABLE plan_subscription (
    id bigint NOT NULL,
    version bigint NOT NULL,
    team_id bigint NOT NULL,
    plan_id bigint NOT NULL,

    PRIMARY KEY (id),
    FOREIGN KEY (plan_id) REFERENCES plan (id),
    UNIQUE (team_id)
);

添加了另一个脚本,该脚本会将plan_subscription添加到开发环境中 但是在我当前的任务中,如果迁移是新数据库,迁移将失败,因此我删除了插入

V5002__add_test_data.sql

//There are other test data here

/* THIS IS THE DATA THAT I DELETED
INSERT INTO plan_subscription VALUES (nextval('plan_subscription_sequence'), 0, 3, currval('plan_sequence'));
*/

由于必须更改表并添加具有约束的列,因此我将测试数据的添加移到了新的数据库迁移脚本中。 似乎没有错误,但是它弄乱了我不确定是什么原因的东西。

V5004__add_date_occurred_in_plan_subscription.sql

ALTER TABLE plan_subscription ADD
date_occurred TIMESTAMP WITHOUT TIME ZONE NOT NULL;

INSERT INTO plan_subscription VALUES (nextval('plan_subscription_sequence'), 0, 3, currval('plan_sequence'), current_date);

所以我所做的只是删除了NOT NULL约束,并恢复了对旧测试数据的删除。

我知道这有点长而且很奇怪,但是我希望有人会知道原因。

谢谢!

0 个答案:

没有答案