[英]flyway not picking up migrations when used from docker-compose
我的 docker-compose.yml 文件中有以下服务:
flyway:
image: boxfuse/flyway:latest-alpine
command: -url=jdbc:postgresql://yurldb:5432/yurldb -schemas=public -user=postgres -password=somepassword migrate
networks:
- yunet
volumes:
- ./flyway:/flyway/sql
restart: on-failure
depends_on:
- yurldb
我的资源 package 中只有一次迁移:
当我使用 docker compose (docker-compose up -d --build flyway) 运行服务时,flyway 会创建 flyway_schema_history 表,但不会创建迁移中定义的表。 如果我检查日志,我会看到以下消息:
Boxfuse 数据库的 Flyway 社区版 5.2.4:jdbc:postgresql://yurldb:5432/yurldb (PostgreSQL 10.13) 成功验证了 0 个迁移(执行时间 00:00.011s)“公共架构”的当前版本> 架构“公共”是最新的。 无需迁移。
未触发迁移。 这是为什么? 我不确定我错过了什么。 我有正确的 package 和 SQL 里面的迁移是正确的(否则会有某种语法错误)。 它只是没有检测到这种迁移。 任何想法?
更新我刚刚注意到,当我运行该命令时,在 package 结构中创建了一个小目录。 不确定它是什么:
我还添加了另一张图片来显示项目的整体结构:
更新 2使用卷映射./src/main/resources/db.migration:/flyway/sql
在我的 package 结构中生成了一个附加目录:
将您的映射更改为此./src/main/resources/db/migration:/flyway/sql
使用db.migration
会导致 Docker 使用该名称创建,如果 db 目录中只有目录,Intellij 只会显示目录db/migration
,就像 package 名称db.dmigration
一样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.