Heim > Backend-Entwicklung > Golang > Wie führe ich Golang-Migrate mit Docker Compose und einem separaten Datenbankcontainer aus?

Wie führe ich Golang-Migrate mit Docker Compose und einem separaten Datenbankcontainer aus?

Linda Hamilton
Freigeben: 2024-12-06 13:06:14
Original
575 Leute haben es durchsucht

How to Run Golang-Migrate with Docker Compose and a Separate Database Container?

Golang-Migrate mit Docker Compose ausführen

Die Dokumentation von Golang-migrate stellt einen Befehl zum Ausführen aller Migrationen in einem bestimmten Verzeichnis bereit:

docker run -v {{ migration dir }}:/migrations --network host migrate/migrate -path=/migrations/ -database postgres://localhost:5432/database up 2
Nach dem Login kopieren

Dieser Befehl ist jedoch nicht mit der Syntax von Docker-Compose kompatibel. In diesem Artikel wird gezeigt, wie Sie den Befehl ändern, um ihn an die neue Syntax anzupassen und eine Verbindung zu einer Datenbank herzustellen, die in einem anderen Container ausgeführt wird.

Docker-Compose-Integration

Um golang-migrate mit Docker-Compose zu integrieren, Fügen Sie Folgendes zu Ihrer docker-compose.yml-Datei hinzu:

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:
Nach dem Login kopieren

Diese Konfiguration erstellt ein Netzwerk mit dem Namen „new“ und enthält „db“ und Dienste „migrieren“. Der „db“-Dienst wird mit den erforderlichen Umgebungsvariablen für eine PostgreSQL-Datenbank definiert.

Herstellen einer Verbindung zu einer Datenbank in einem anderen Container

Um eine Verbindung zu einer Datenbank herzustellen, die in einem anderen Container ausgeführt wird, ändern Sie die Verbindungszeichenfolge im Attribut „command“ des Dienstes „migrate“:

postgres://mydbuser:mydbpwd@database:5432/mydbname?sslmode=disable
Nach dem Login kopieren

In diesem Zusammenhang string:

  • mydbuser ist der Benutzername für die PostgreSQL-Datenbank
  • mydbpwd ist das Passwort für die PostgreSQL-Datenbank
  • database ist der im „db“-Dienst definierte Alias
  • 5432 ist die Portnummer für PostgreSQL Datenbank
  • mydbname ist der Name der PostgreSQL-Datenbank

Durch die Verwendung des Alias ​​„database“ können Sie eine Verbindung zum „db“-Dienst herstellen, als ob er auf localhost ausgeführt würde.

Mit diesen Änderungen können Sie golang-migrate erfolgreich mit Docker-Compose ausführen und eine Verbindung zu einer Datenbank in einem anderen Container herstellen.

Das obige ist der detaillierte Inhalt vonWie führe ich Golang-Migrate mit Docker Compose und einem separaten Datenbankcontainer aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage