scala - Flyway 似乎无法识别 java/scala 迁移
问题描述
我在 scala 项目中使用 Flyway 版本 5.2.4,并且我的所有迁移脚本都在 src/main/resources/db/migrations 下,具有以下文件夹结构
main
-resources
--db
---migrations
----V1__example1.sql
----V2__example2.sql
----V3__scala_migration.scala
位置设置为 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 或 Java 迁移脚本移动到相应的目录。
对于 Scala 这将是src/main/scala/db/migration
请参阅此处的文档:https ://flywaydb.org/documentation/migrations#discovery-1
推荐阅读
- c# - ASP.NET Core 3.1 如何让控制器使用 System.Text.Json 进行序列化和反序列化
- python - Django elasticsearch无法导入模块
- node.js - 如何在 Win10 上的 Intellij 中设置 npm 依赖项更新
- javascript - 更改委托实例的 Tippy 内容
- c# - 我无法访问 c# Xamarin 中的 json 文件
- go - 将弹性搜索与 Logrus 集成(golang 日志记录)
- python - 使用python在特定路径中创建文件
- javascript - 如何在 javascript 函数中访问 Mustache 文件 [更新]?
- css - 如何使用react js的app.css修复右侧导航栏上重叠的导航栏下拉菜单
- c++ - lower_bound() STL 中的自定义比较器