Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menjalankan Migrasi Pangkalan Data Golang-Migrate dengan Docker Compose Tanpa `--network host`?

Bagaimana untuk Menjalankan Migrasi Pangkalan Data Golang-Migrate dengan Docker Compose Tanpa `--network host`?

Patricia Arquette
Lepaskan: 2024-12-08 20:38:18
asal
778 orang telah melayarinya

How to Run Golang-Migrate Database Migrations with Docker Compose Without `--network host`?

Memindahkan Pangkalan Data Menggunakan Golang-Migrate dalam Docker-Compose

Docker-compose telah memperkenalkan sintaks baharu yang tidak menggalakkan penggunaan pilihan "--network", yang menimbulkan persoalan tentang menjalankan migrasi menggunakan golang-migrate dalam persekitaran ini. Artikel ini meneroka cara menyediakan golang-migrate dengan docker-compose dan menyambung ke pangkalan data dalam bekas lain.

Menjalankan Migrasi dalam Folder Tunggal

Arahan berikut, seperti yang dinyatakan dalam golang -dokumentasi migrasi, boleh digunakan untuk menjalankan semua migrasi dalam satu folder:

docker run -v migration-dir:/migrations --network host migrate/migrate -path=/migrations/ -database postgres://localhost:5432/database up 2
Salin selepas log masuk

Untuk menyesuaikan sintaks ini kepada docker-compose, kita boleh menggunakan pendekatan berikut:

Menambah Konfigurasi Docker-Compose

Tambah konfigurasi berikut pada fail docker-compose.yml anda:

    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:
Salin selepas log masuk

Konfigurasi ini menyediakan rangkaian baharu yang dipanggil "baharu" dan menambah kedua-dua perkhidmatan "db" dan "hijrah" kepadanya. Perkhidmatan "db" berfungsi sebagai pangkalan data, manakala perkhidmatan "migrate" digunakan untuk menjalankan migrasi.

Menyambung ke Pangkalan Data dalam Bekas Lain

Daripada menggunakan "--network host " pilihan, kami mewujudkan rangkaian dan menyambung ke pangkalan data melalui aliasnya, "pangkalan data," dalam rangkaian itu. Ini membolehkan perkhidmatan "hijrah" berinteraksi dengan perkhidmatan "db" seolah-olah ia berjalan pada localhost.

Rentetan sambungan yang digunakan dalam bahagian "perintah" mencerminkan kaedah sambungan ini:

"postgres://mydbuser:mydbpwd@database:5432/mydbname?sslmode=disable"
Salin selepas log masuk

Kini, menjalankan docker-compose akan berjaya melaksanakan migrasi dan menyambung ke bekas pangkalan data.

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

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan