Maison >développement back-end >Golang >Comment utiliser « golang-migrate » avec Docker Compose pour les migrations de bases de données ?
Utilisation de golang-migrate avec Docker Compose pour les migrations de bases de données
La documentation de golang-migrate recommande d'utiliser la commande suivante pour exécuter des migrations à partir d'un directory :
docker run -v {{ migration dir }}:/migrations --network host migrate/migrate -path=/migrations/ -database postgres://localhost:5432/database up 2
Pour adapter cette commande à la syntaxe docker-compose mise à jour, qui décourage l'utilisation de --network, modifiez votre fichier docker-compose.yml comme suit :
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:
Pour vous connecter à une base de données résidant dans un autre conteneur au lieu de localhost, un réseau est établi au sein de docker-compose, permettant aux services de communiquer en utilisant des pseudonymes. Dans la configuration fournie, vous pouvez accéder au service db via l'alias de la base de données.
La chaîne de connexion est modifiée en conséquence :
postgres://mydbuser:mydbpwd@database:5432/mydbname?sslmode=disable
Avec ces ajustements, vous pouvez exécuter avec succès des migrations dans golang- migrez avec docker-compose, en établissant une connexion à une base de données dans un autre conteneur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!