> 백엔드 개발 > Golang > `--network 호스트` 없이 Docker Compose를 사용하여 Golang-Migrate 데이터베이스 마이그레이션을 실행하는 방법은 무엇입니까?

`--network 호스트` 없이 Docker Compose를 사용하여 Golang-Migrate 데이터베이스 마이그레이션을 실행하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-08 20:38:18
원래의
722명이 탐색했습니다.

How to Run Golang-Migrate Database Migrations with Docker Compose Without `--network host`?

Docker-Compose에서 Golang-Migrate를 사용하여 데이터베이스 마이그레이션

Docker-compose는 "--network" 옵션의 사용을 방지하는 새로운 구문을 도입했습니다. 이 환경에서 golang- migration을 사용하여 마이그레이션을 실행하는 것에 대한 질문을 제기합니다. 이 문서에서는 docker-compose를 사용하여 golang- migration을 설정하고 다른 컨테이너의 데이터베이스에 연결하는 방법을 살펴봅니다.

단일 폴더에서 마이그레이션 실행

golang에 명시된 다음 명령 - migration 문서는 하나의 폴더에서 모든 마이그레이션을 실행하는 데 사용할 수 있습니다.

docker run -v migration-dir:/migrations --network host migrate/migrate -path=/migrations/ -database postgres://localhost:5432/database up 2
로그인 후 복사

이 구문을 docker-compose에 적용하려면 다음을 수행합니다. 다음 접근 방식을 사용하십시오.

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" 서비스는 데이터베이스 역할을 하고 "마이그레이션" 서비스는 마이그레이션을 실행하는 데 사용됩니다.

다른 컨테이너의 데이터베이스에 연결

"--network 호스트를 사용하는 대신 " 옵션을 사용하면 네트워크를 설정하고 해당 네트워크 내에서 별칭인 "데이터베이스"를 통해 데이터베이스에 연결합니다. 이를 통해 "마이그레이션" 서비스가 마치 로컬 호스트에서 실행 중인 것처럼 "db" 서비스와 상호 작용할 수 있습니다.

"명령" 섹션에 사용된 연결 문자열은 다음 연결 방법을 반영합니다.

"postgres://mydbuser:mydbpwd@database:5432/mydbname?sslmode=disable"
로그인 후 복사

이제 docker-compose up을 실행하면 마이그레이션이 성공적으로 실행되고 데이터베이스 컨테이너에 연결됩니다.

위 내용은 `--network 호스트` 없이 Docker Compose를 사용하여 Golang-Migrate 데이터베이스 마이그레이션을 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿