Golang- migration의 문서는 특정 디렉터리에서 모든 마이그레이션을 실행하기 위한 명령을 제공합니다.
docker run -v {{ migration dir }}:/migrations --network host migrate/migrate -path=/migrations/ -database postgres://localhost:5432/database up 2
그러나 이 명령은 docker-compose 구문과 호환되지 않습니다. 이 문서에서는 새 구문에 맞게 명령을 수정하고 다른 컨테이너에서 실행 중인 데이터베이스에 연결하는 방법을 보여줍니다.
golang- migration을 docker-compose와 통합하려면, docker-compose.yml 파일에 다음을 추가합니다.
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:
이 구성은 "new"라는 네트워크를 생성하고 "db" 및 "마이그레이션" 서비스. "db" 서비스는 PostgreSQL 데이터베이스에 필요한 환경 변수로 정의됩니다.
다른 컨테이너에서 실행 중인 데이터베이스에 연결하려면 연결 문자열을 수정하세요. "마이그레이션" 서비스의 "명령" 속성:
postgres://mydbuser:mydbpwd@database:5432/mydbname?sslmode=disable
이와 관련하여 문자열:
"database" 별칭을 사용하면 마치 localhost에서 실행되는 것처럼 "db" 서비스에 연결할 수 있습니다.
이러한 수정을 통해 docker-compose를 사용하여 golang- migration을 성공적으로 실행하고 다른 컨테이너의 데이터베이스에 연결할 수 있습니다.
위 내용은 Docker Compose 및 별도의 데이터베이스 컨테이너를 사용하여 Golang-Migrate를 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!