我试图在两个mysql容器中使用两个模式。我有两个连接到两个不同模式的flyway服务。 Docker Compose的.yml文件如下所示:
version: '2'
services:
mysqldb:
image: mysql:5.6.26
environment:
MYSQL_USER: user
MYSQL_PASSWORD: password
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE:
- my
- my_post
ports:
- "3306:3306"
flyway-service1-i:
image: mik/flyway-service
volumes:
- "../resources/db/migration:/migrations/ro"
depends_on:
- mysqldb
links:
- mysqldb
command: migrate -url=jdbc:mysql://mysqldb:3306/mi -user=user -password=password -baselineOnMigrate=true -locations='filesystem:/migrations'
flyway-service2-i:
image: mialk/flyway-post-service
volumes:
- "../../../service2/src/main/resources/db/migration:/migrations/ro"
depends_on:
- mysqldb
links:
- mysqldb
command: migrate -url=jdbc:mysql://mysqldb:3306/mi_post -user=user -password=password -baselineOnMigrate=true -locations='filesystem:/migrations'
但是当我运行命令sudo docker-compose up时,终端会显示以下消息:
错误:撰写文件&#39; ./ docker-compose.yml&#39;无效,因为: services.mysqldb.environment.MYSQL_DATABASE包含[&#34; mialquiler&#34;,&#34; mialquiler_post&#34;],这是一个无效的类型,它应该是字符串,数字或空 < / p>
我在没有指定MYSQL_DATABASE属性的情况下进行了交易,但它没有工作。
有没有办法做到这一点?
答案 0 :(得分:3)
MYSQL_DATABASE
变量允许创建单个数据库,如果指定,则允许在数据库上授予MYSQL_USER
权限。
您可以使用单个数据库来容纳多个架构。
如果您需要创建多个数据库,则可能需要运行一些自定义SQL,因为flyway无法为您创建数据库。 flyway test resources include a mysql example。