2011-08-18 37 views
2

我成功地使用创建表DDL运行v1迁移。我复制到相同文件V2奔着 - 得到了期望验证错误消息:flyway命令行工具 - 重新执行失败的DDL有哪些选项?

迁移到1.0.002版本 com.googlecode.flyway.core.exception.FlywayException:第1行执行的语句 错误:创建表名人员(ID号(10)主键,名称varchar2(301)) 由java.sql.SQLSyntaxErrorException引起:ORA-00955:名称已由 n现有对象使用 MigrationException:迁移到版本1.0.002失败!请恢复备份 并回滚数据库和代码

我更正了v2文件并再次运行了flyway迁移。回复错误消息

当前模式版本:1.0.002 MigrationException:迁移到版本1.0.002失败!请还原备份 和回滚数据库和代码

我不是在一个阶段,数据库备份是采取 - 简单试图执行一个固定的DDL。目前我还没有看到一个解决方案,因为没有清理飞行路线。为什么flyway不能再次尝试执行失败的版本(如果校验和已经改变)?或者不应该有飞路回滚命令?

我知道我可以非常好地修改代码,使其成为这种方式,但是你有什么理由选择它来表现这种行为吗?

回答

1

简单地重新执行的问题是某些更改可能已经应用,这将导致迁移到失败

有两种解决这一:

  • 使用支持DDL事务数据库如PostgreSQL中,SQLServer的或DB2
  • 执行手动清理的修改的结构的和所述元数据表再次申请之前
相关问题