ホームページ > バックエンド開発 > Golang > データベース移行のために Golang-Migrate を Docker Compose と統合するにはどうすればよいですか?

データベース移行のために Golang-Migrate を Docker Compose と統合するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-06 04:05:22
オリジナル
773 人が閲覧しました

How to Integrate Golang-Migrate with Docker Compose for Database Migrations?

Golang-Migrate のための Docker-Compose 統合

Golang-Migrate はデータベース移行管理を容易にします。ディレクトリからすべての移行を実行するには、次のコマンドが推奨されます:

docker run -v {{ migration dir }}:/migrations --network host migrate/migrate
-path=/migrations/ -database postgres://localhost:5432/database up 2
ログイン後にコピー

ただし、このコマンドは、更新された docker-compose の構文と一致しません。この記事では、新しい docker-compose 構文に合わせてこのコマンドを変更し、別のコンテナー内のデータベースに接続する方法について説明します。

新しい Docker-Compose 構文のソリューション

次の 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:
ログイン後にコピー

代わりに--network host オプションを使用すると、new という名前のカスタム ネットワークが定義されます。このネットワーク内のサービスは、定義されたエイリアスを介して相互にアクセスできます (データベース エイリアスを介して db サービスにアクセスするなど)。これにより、接続文字列で localhost の代わりにエイリアスを使用できるようになります。

外部データベースへの接続

この接続文字列は、外部データベースへの接続を確立するために使用されます。別のコンテナーで実行されているデータベース:

"postgres://mydbuser:mydbpwd@database:5432/mydbname?sslmode=disable"
ログイン後にコピー

この例では、データベース エイリアスは外部データベースを表しますコンテナ。

以上がデータベース移行のために Golang-Migrate を Docker Compose と統合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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