如何回滚 Flyway Scala 中的迁移?
Posted
技术标签:
【中文标题】如何回滚 Flyway Scala 中的迁移?【英文标题】:How to rollback a migration in Flyway Scala? 【发布时间】:2017-08-18 23:49:55 【问题描述】:我刚刚进行了迁移file.sql
以将新表添加到数据库中,然后我运行了flywayMigrate
命令sbt flywayMigrate
。现在我意识到我错过了在同一个表中添加两列。我可以选择编写另一个迁移,但是当我可以回滚并更改刚刚创建的表并添加两列的迁移时,我不想增加迁移的数量。你能告诉我如何回滚一些迁移并更改它们,然后再次运行 sbt flywayMigrate
吗?
【问题讨论】:
【参考方案1】:您不必重新运行整个迁移。有一张 flyway 用于元数据的表,我认为它称为schema_version
。您可以设置最后应用的迁移 id(有一些哈希要设置 IIRC,但如果它们不匹配,您将能够从错误消息中找出它们)并且 flyway 将从那里拾取。
【讨论】:
flywaydb.org/getstarted/how 更详细地描述了它的工作原理。【参考方案2】:如@987654321 中所述,不支持回滚脚本。
您可以选择:
从备份中恢复您的数据库 删除并重新创建数据库以重新运行所有迁移脚本 手动回滚迁移并从元数据表中删除其记录【讨论】:
只需连接到数据库并运行适当的 DDL 即可删除添加的表/列并恢复您所做的任何其他更改。以上是关于如何回滚 Flyway Scala 中的迁移?的主要内容,如果未能解决你的问题,请参考以下文章
使用flyway迁移到Google Cloud SQL,应该复制哪些jar文件?
如何从 IntelliJ IDEA 中的模型类生成 Flyway 迁移脚本?