繁体   English   中英

从 docker-compose 使用时,flyway 没有拾取迁移

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM