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!