Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mengintegrasikan Golang-Migrate dengan Docker Compose untuk Migrasi Pangkalan Data?

Bagaimana untuk Mengintegrasikan Golang-Migrate dengan Docker Compose untuk Migrasi Pangkalan Data?

Barbara Streisand
Barbara Streisandasal
2024-12-06 04:05:22755semak imbas

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

Penyatuan Docker-Compose untuk Golang-Migrate

Golang-Migrate memudahkan pengurusan migrasi pangkalan data. Untuk melaksanakan semua migrasi daripada direktori, arahan berikut dicadangkan:

docker run -v {{ migration dir }}:/migrations --network host migrate/migrate
-path=/migrations/ -database postgres://localhost:5432/database up 2

Walau bagaimanapun, arahan ini tidak sejajar dengan sintaks karang docker yang dikemas kini. Artikel ini membincangkan cara mengubah suai arahan ini agar sesuai dengan sintaks karang docker yang lebih baharu dan bersambung ke pangkalan data dalam bekas yang berbeza.

Penyelesaian untuk Sintaks Karang Docker Baharu

Coretan docker-compose.yml berikut akan mencapai yang diingini kefungsian:

    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:

Daripada menggunakan pilihan hos --rangkaian, rangkaian tersuai bernama baharu ditakrifkan. Perkhidmatan dalam rangkaian ini boleh mengakses satu sama lain melalui alias yang ditentukan (cth., mengakses perkhidmatan db melalui alias pangkalan data). Ini membolehkan anda menggunakan alias sebagai pengganti localhost dalam rentetan sambungan.

Sambungan ke Pangkalan Data Luaran

Rentetan sambungan ini digunakan untuk mewujudkan sambungan ke pangkalan data berjalan dalam bekas lain:

"postgres://mydbuser:mydbpwd@database:5432/mydbname?sslmode=disable"

Dalam contoh ini, alias pangkalan data mewakili bekas pangkalan data luaran.

Atas ialah kandungan terperinci Bagaimana untuk Mengintegrasikan Golang-Migrate dengan Docker Compose untuk Migrasi Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn