ホームページ > バックエンド開発 > Golang > 「--network host」の廃止後に Go と Docker Compose を使用してデータベース移行を実行する方法

「--network host」の廃止後に Go と Docker Compose を使用してデータベース移行を実行する方法

DDD
リリース: 2024-12-16 11:20:10
オリジナル
116 人が閲覧しました

How to Run Database Migrations with Go and Docker Compose After the `--network host` Deprecation?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート