Database 如何仅在迁移文件中的所有说明都正确时输入数据?

Database 如何仅在迁移文件中的所有说明都正确时输入数据?,database,flyway,Database,Flyway,您好,我使用flyway对我的数据库进行版本控制,但是我现在开始,我有一个疑问。如果我有两个带有sqls指令的文件,第一个文件所有sqls指令都正确,但第二个文件有错误,如果我使用flyway进行迁移,第一个文件的指令将包含在我的数据库中,然而,我希望它被插入,这样两个文件的所有指令都是正确的——有人已经经历过类似的事情了 我的代码如下 flyway.setDataSource(con,user,pass); flyway.setSchemas("database");

您好,我使用flyway对我的数据库进行版本控制,但是我现在开始,我有一个疑问。如果我有两个带有sqls指令的文件,第一个文件所有sqls指令都正确,但第二个文件有错误,如果我使用flyway进行迁移,第一个文件的指令将包含在我的数据库中,然而,我希望它被插入,这样两个文件的所有指令都是正确的——有人已经经历过类似的事情了

我的代码如下

        flyway.setDataSource(con,user,pass);
    flyway.setSchemas("database");

    //Repara o banco para inserir as novas migrações
    flyway.repair();

    //Insere as migrações no banco de dados
    flyway.migrate();
V1_file.sql

CREATE TABLE flyway (
    name VARCHAR(100)
    );
V2_file.sql

alter table flyway add x int

alter table flyway add y int
v3_file.sql

CREATE TABLE flyway (
    name VARCHAR(100)
    );
如果发生类似情况,flyway表已经存在,以便输入每个sql文件没有任何错误的数据 很简单,但我真的需要这个


对不起,我的英语很糟糕。

Flyway在事务中运行每个迁移。如果要将语句提交或回滚到一起,必须将它们放在同一个.sql文件中。

我明白,程序员必须确保sql文件正确无误。