2016-10-31 4 views
2

1つのmysqlコンテナに2つのスキーマを使用しようとしています。私は2つの異なるスキーマに接続する2つのフライウェイサービスを持っています。ドッカー作曲の.ymlファイルは次のようになります。Docker Compose - 1つのmysqlコンテナで多数のスキーマを参照する方法

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を実行したときにドッキングウィンドウ-構成ターミナルショーにこのメッセージアップ:

ERROR:作曲file」を./docker-compose私はtraid services.mysqldb.environment.MYSQL_DATABASEが無効な型である、[ "mialquiler"、 "mialquiler_postを"]が含まれ、それは文字列、数値、またはnull

する必要があります:.ymlは」あるため無効ですMYSQL_DATABASEプロパティを指定しなくても動作しませんでした。

これを行う方法はありますか?

答えて

2

MYSQL_DATABASE変数を使用すると、1つのデータベースを作成することができ、指定されている場合はデータベースに付与されているアクセス権がMYSQL_USERになります。

単一のデータベースを使用して複数のスキーマを格納できます。

複数のデータベースを作成する必要がある場合は、データベースを作成できないため、カスタムSQLを実行する必要があります。 flyway test resources include a mysql example

+0

お返事ありがとうございます@Matt :)。したがって、私はこのように.ymlファイルのフライウェイを使用できます: **コマンド:migrate -url = jdbc:mysql:// mysqldb:3306/mi_post -user = user -password = password -eschemas = my_post_schema1 -baselineOnMigrate = true -locations = 'ファイルシステム:/ migrations' ** ありがとう! :D – AleGallagher