Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 强制失败的mvn flyway:迁移以跳过失败的架构迁移,并尝试执行下一个架构_Postgresql_Maven_Flyway - Fatal编程技术网

Postgresql 强制失败的mvn flyway:迁移以跳过失败的架构迁移,并尝试执行下一个架构

Postgresql 强制失败的mvn flyway:迁移以跳过失败的架构迁移,并尝试执行下一个架构,postgresql,maven,flyway,Postgresql,Maven,Flyway,我试图在我的项目postgres数据库上运行flyway:migrate。我已经手动更改了一个表,因此使用flyway的模式迁移失败,这将阻止下一个模式迁移执行 table : foo required_change : ALTER TABLE foo ALTER COLUMN id DROP NOT NULL current_schema_version : 2 next_schema_version : 3 错误: [ERROR] com.googlecode.flyway.c

我试图在我的项目
postgres数据库
上运行
flyway:migrate
。我已经手动更改了一个表,因此使用flyway的模式迁移失败,这将阻止下一个模式迁移执行

table : foo  

required_change : ALTER TABLE foo ALTER COLUMN id DROP NOT NULL 

current_schema_version : 2

next_schema_version : 3
错误:

[ERROR] com.googlecode.flyway.core.api.FlywayException: Migration of schema "public" to version 3 failed! Changes successfully rolled back.

如何跳过失败的模式并使flyway:migrate执行定义的下一个模式?

撤销手动更改可能最简单,这样flyway就可以成功运行。例如,如果您删除了列,然后将其添加回,然后运行Flyway脚本删除它。

因此,我找到了解决此问题的一种可能方法,如下所示:

(1) 。mysql数据库中有一个表schema_version,它维护迁移版本号、状态和其他相关信息。 例如

mysql>descschema\u版本

版本\排名
装机容量 版本
说明
类型
脚本
校验和

已安装在
执行时间 成功

对于失败的迁移,成功字段值存储为0,若要覆盖该值并执行下一个flyway:migration,您可以手动将该值设置为1(这将确保在迁移失败时不会丢失手动创建的表上存储的数据)

(2) 。在运行flyway时在pom.xml上添加以下内容:临时迁移(测试时)也有帮助

false