Maison > développement back-end > Golang > Comment exécuter des migrations de bases de données avec Go et Docker Compose après la dépréciation de « --network host » ?

Comment exécuter des migrations de bases de données avec Go et Docker Compose après la dépréciation de « --network host » ?

DDD
Libérer: 2024-12-16 11:20:10
original
114 Les gens l'ont consulté

How to Run Database Migrations with Go and Docker Compose After the `--network host` Deprecation?

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:
Copier après la connexion

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"
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal