Maison > développement back-end > Golang > Comment intégrer Golang-Migrate avec Docker Compose pour les migrations de bases de données ?

Comment intégrer Golang-Migrate avec Docker Compose pour les migrations de bases de données ?

Barbara Streisand
Libérer: 2024-12-06 04:05:22
original
747 Les gens l'ont consulté

How to Integrate Golang-Migrate with Docker Compose for Database Migrations?

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

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

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

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!

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
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