データベース移行に Docker Compose で golang-maigrate を使用する
golang-merge ドキュメントでは、次のコマンドを使用して指定されたデータベースから移行を実行することを推奨しています。 directory:
docker run -v {{ migration dir }}:/migrations --network host migrate/migrate -path=/migrations/ -database postgres://localhost:5432/database up 2
このコマンドを更新された docker-compose に適合させるには--network の使用を妨げる構文を使用するには、docker-compose.yml ファイルを次のように変更します。
db: image: postgres networks: new: aliases: - database environment: POSTGRES_DB: mydbname POSTGRES_USER: mydbuser POSTGRES_PASSWORD: mydbpwd ports: - "5432" migrate: image: migrate/migrate networks: - new volumes: - .:/migrations command: ["-path", "/migrations", "-database", "postgres://mydbuser:mydbpwd@database:5432/mydbname?sslmode=disable", "up", "3"] links: - db networks: new:
localhost ではなく別のコンテナーにあるデータベースに接続するには、docker 内でネットワークが確立されます。 -compose により、サービスがエイリアスを使用して通信できるようになります。提供された構成では、データベース エイリアスを介して db サービスにアクセスできます。
接続文字列はそれに応じて変更されます:
postgres://mydbuser:mydbpwd@database:5432/mydbname?sslmode=disable
これらの調整により、golang で移行を正常に実行できます。 docker-compose を使用して移行し、別のコンテナ内のデータベースへの接続を確立します。
以上がデータベース移行のために Docker Compose で「golang-maigrate」を使用する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。