Verwendung von golang-migrate mit Docker Compose für Datenbankmigrationen
In der Dokumentation zu golang-migrate wird die Verwendung des folgenden Befehls empfohlen, um Migrationen von einem angegebenen aus auszuführen Verzeichnis:
docker run -v {{ migration dir }}:/migrations --network host migrate/migrate -path=/migrations/ -database postgres://localhost:5432/database up 2
Um diesen Befehl an die aktualisierte Docker-Compose-Syntax anzupassen, die Wenn Sie von der Verwendung von --network abraten, ändern Sie Ihre docker-compose.yml-Datei wie folgt:
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:
Um eine Verbindung zu einer Datenbank herzustellen, die sich in einem anderen Container anstelle von localhost befindet, wird innerhalb von docker-compose ein Netzwerk eingerichtet. Ermöglichen, dass Dienste über Aliase kommunizieren. In der bereitgestellten Konfiguration können Sie über den Datenbankalias auf den Datenbankdienst zugreifen.
Der Verbindungsstring wird entsprechend geändert:
postgres://mydbuser:mydbpwd@database:5432/mydbname?sslmode=disable
Mit diesen Anpassungen können Sie Migrationen in Golang erfolgreich durchführen. Mit Docker-Compose migrieren und eine Verbindung zu einer Datenbank in einem anderen Container herstellen.
Das obige ist der detaillierte Inhalt vonWie verwende ich „golang-migrate' mit Docker Compose für Datenbankmigrationen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!