Menggunakan golang-migrate dengan Docker Compose untuk Migrasi Pangkalan Data
Dokumentasi golang-migrate mengesyorkan menggunakan perintah berikut untuk melaksanakan migrasi daripada yang ditentukan direktori:
docker run -v {{ migration dir }}:/migrations --network host migrate/migrate -path=/migrations/ -database postgres://localhost:5432/database up 2
Untuk menyesuaikan arahan ini kepada yang dikemas kini sintaks docker-compose, yang tidak menggalakkan penggunaan --network, ubah suai fail docker-compose.yml anda seperti berikut:
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:
Untuk menyambung ke pangkalan data yang berada dalam bekas lain dan bukannya localhost, rangkaian ialah ditubuhkan dalam docker-compose, membenarkan perkhidmatan berkomunikasi menggunakan alias. Dalam konfigurasi yang disediakan, anda boleh mengakses perkhidmatan db melalui alias pangkalan data.
Rentetan sambungan diubah suai dengan sewajarnya:
postgres://mydbuser:mydbpwd@database:5432/mydbname?sslmode=disable
Dengan pelarasan ini, anda boleh berjaya melaksanakan migrasi dalam golang- berhijrah dengan docker-compose, mewujudkan sambungan ke pangkalan data dalam bekas lain.
Atas ialah kandungan terperinci Bagaimana untuk Menggunakan `golang-migrate` dengan Docker Compose untuk Migrasi Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!