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
Mary-Kate Olsenoriginal
2024-12-21 11:04:16434parcourir

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

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!

Déclaration:
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