【问题标题】:Flyway does not seem to recognize java/scala migrationsFlyway 似乎无法识别 java/scala 迁移
【发布时间】:2020-06-03 03:13:05
【问题描述】:

我在 scala 项目中使用 Flyway 版本 5.2.4,并且我的所有迁移脚本都位于 src/main/resources/db/migrations 下,具有以下文件夹结构

main

-resources

--db

---migrations

----V1__example1.sql

----V2__example2.sql

----V3__scala_migration.scala

locations 设置为 db.migrations(没有任何前缀。Flyway 文档说如果不使用前缀,则支持 sql/java 迁移)

V1 和 V2 似乎可以毫无问题地使用。但是 V3 被忽略了。我也尝试添加 V3__java_migration.java 并没有什么区别。有没有人幸运地添加了非 sql 迁移?

这是迁移中的 scala 代码

package db.migration

import org.flywaydb.core.api.migration.{ BaseJavaMigration, Context }

class V3__scala_migration extends BaseJavaMigration {

  override def migrate(context: Context): Unit = {

    val conn = context.getConnection

    conn.createStatement().executeUpdate(
      """
        |DROP TABLE IF EXISTS `users`;

        |CREATE TABLE IF NOT EXISTS `users`

        |`name` varchar(100) NOT NULL,

        |`email` varchar(100) NOT NULL,

        |PRIMARY KEY (`email`)

        |)ENGINE=InnoDB  DEFAULT CHARSET=utf8;

        |INSERT INTO `users` (`name`, `email`) ('john','john@example.com');

      """.stripMargin)
  }

}

【问题讨论】:

    标签: scala flyway


    【解决方案1】:

    您必须将 Scala 或 Java 迁移脚本移至相应的目录。

    对于 Scala,这将是 src/main/scala/db/migration

    请参阅此处的文档:https://flywaydb.org/documentation/migrations#discovery-1

    【讨论】:

    • 成功了!应该在 scala 迁移代码中使用这一行“package db.migration”作为将脚本移动到 src/main/scala/db/migration 的提示
    猜你喜欢
    • 2018-06-27
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 2020-12-08
    • 1970-01-01
    • 1970-01-01
    • 2014-10-29
    • 2011-01-12
    相关资源
    最近更新 更多