Intégration Docker-Compose pour Golang-Migrate
Golang-Migrate facilite la gestion de la migration des bases de données. Pour effectuer toutes les migrations depuis un répertoire, la commande suivante est suggérée :
docker run -v {{ migration dir }}:/migrations --network host migrate/migrate -path=/migrations/ -database postgres://localhost:5432/database up 2
Cependant, cette commande ne correspond pas à la syntaxe du docker-compose mis à jour. Cet article explique comment modifier cette commande pour l'adapter à la nouvelle syntaxe Docker-Compose et se connecter à une base de données dans un conteneur différent.
Solution pour la nouvelle syntaxe Docker-Compose
L'extrait docker-compose.yml suivant permettra d'obtenir la fonctionnalité souhaitée :
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:
Au lieu d'utiliser le --network option hôte, un réseau personnalisé nommé new est défini. Les services de ce réseau peuvent accéder les uns aux autres via des alias définis (par exemple, accéder au service de base de données via l'alias de base de données). Cela vous permet d'utiliser l'alias en remplacement de localhost dans les chaînes de connexion.
Connexion à une base de données externe
Cette chaîne de connexion est utilisée pour établir une connexion à un base de données exécutée dans un conteneur différent :
"postgres://mydbuser:mydbpwd@database:5432/mydbname?sslmode=disable"
Dans cet exemple, l'alias de la base de données représente le conteneur de base de données externe.
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!