【问题标题】:How to rollback a migration in Flyway Scala?如何回滚 Flyway Scala 中的迁移?
【发布时间】:2017-08-18 23:49:55
【问题描述】:

我刚刚进行了迁移file.sql 以将新表添加到数据库中,然后我运行了flywayMigrate 命令sbt flywayMigrate。现在我意识到我错过了在同一个表中添加两列。我可以选择编写另一个迁移,但是当我可以回滚并更改刚刚创建的表并添加两列的迁移时,我不想增加迁移的数量。你能告诉我如何回滚一些迁移并更改它们,然后再次运行 sbt flywayMigrate 吗?

【问题讨论】:

    标签: scala sbt flyway


    【解决方案1】:

    您不必重新运行整个迁移。有一张 flyway 用于元数据的表,我认为它称为schema_version。您可以设置最后应用的迁移 id(有一些哈希要设置 IIRC,但如果它们不匹配,您将能够从错误消息中找出它们)并且 flyway 将从那里拾取。

    【讨论】:

    【解决方案2】:

    如@987654321 中所述,不支持回滚脚本。

    您可以选择:

    • 从备份中恢复您的数据库
    • 删除并重新创建数据库以重新运行所有迁移脚本
    • 手动回滚迁移并从元数据表中删除其记录

    【讨论】:

    • 只需连接到数据库并运行适当的 DDL 即可删除添加的表/列并恢复您所做的任何其他更改。
    猜你喜欢
    • 2011-06-24
    • 2014-07-15
    • 2018-10-28
    • 2017-03-23
    • 2017-06-23
    • 2019-12-27
    • 2022-01-10
    • 2020-06-03
    • 2013-03-03
    相关资源
    最近更新 更多