Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menjalankan Migrasi Pangkalan Data Golang-Migrate dengan Docker Compose Tanpa `--network host`?
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.
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
Untuk menyesuaikan sintaks ini kepada docker-compose, kita boleh menggunakan pendekatan berikut:
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:
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.
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"
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!