Maison > développement back-end > Golang > Comment utiliser « golang-migrate » avec Docker Compose pour les migrations de bases de données ?

Comment utiliser « golang-migrate » avec Docker Compose pour les migrations de bases de données ?

Mary-Kate Olsen
Libérer: 2024-12-21 11:04:16
original
457 Les gens l'ont consulté

How to Use `golang-migrate` with Docker Compose for Database Migrations?

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

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

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

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal