Migrer des bases de données avec Go et Docker-Compose
L'exécution de migrations à l'aide de l'outil golang-migrate peut aider à garantir la cohérence du schéma de base de données. Cependant, avec la dépréciation de --network host dans Docker-Compose, vous pourriez rencontrer des difficultés lors de l'exécution des migrations. Cet article explique comment s'adapter à la syntaxe mise à jour et comment se connecter à une base de données résidant dans un conteneur séparé.
Adapter à la nouvelle syntaxe Docker-Compose
Pour exécuter migrations sans --network host, vous pouvez ajouter la configuration suivante à votre fichier docker-compose.yml :
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:
Dans cette configuration, un réseau appelé new est créé et le service migrate est lié au service db via l'alias de base de données.
Connexion à une base de données distante
Pour se connecter à une base de données dans un conteneur séparé, utilisez le format suivant dans la chaîne de connexion :
"postgres://mydbuser:mydbpwd@database:5432/mydbname?sslmode=disable"
Ici, la base de données est l'alias défini dans la configuration réseau. Cela vous permet de vous connecter à la base de données distante comme si elle s'exécutait localement.
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!