Go と Docker-Compose を使用したデータベースの移行
golang-merge ツールを使用して移行を実行すると、データベース スキーマの一貫性を確保できます。ただし、Docker-Compose の --network host の非推奨により、移行の実行時に問題に直面する可能性があります。この記事では、更新された構文に適応する方法と、別のコンテナーに存在するデータベースに接続する方法について説明します。
新しい Docker-Compose 構文に適応する
実行するには--network host を使用しないで移行する場合は、次の構成を docker-compose.yml に追加できます。 file:
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:
この構成では、new という名前のネットワークが作成され、移行サービスはデータベース エイリアスを介して db サービスにリンクされます。
リモートへの接続Database
別のコンテナ内のデータベースに接続するには、接続で次の形式を使用しますstring:
"postgres://mydbuser:mydbpwd@database:5432/mydbname?sslmode=disable"
ここで、データベースはネットワーク構成で定義されたエイリアスです。これにより、ローカルで実行されているかのようにリモート データベースに接続できるようになります。
以上が「--network host」の廃止後に Go と Docker Compose を使用してデータベース移行を実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。