ホームページ > バックエンド開発 > Golang > データベース移行のために Docker Compose で「golang-maigrate」を使用する方法は?

データベース移行のために Docker Compose で「golang-maigrate」を使用する方法は?

Mary-Kate Olsen
リリース: 2024-12-21 11:04:16
オリジナル
421 人が閲覧しました

How to Use `golang-migrate` with Docker Compose for Database Migrations?

データベース移行に 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 サイトの他の関連記事を参照してください。

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