Repolode
golang-migrate

golang-migrate/migrate

여러 데이터베이스에서 순서가 지정된 스키마 변경을 적용하는 CLI 및 라이브러리 기반 Go 데이터베이스 마이그레이션 도구입니다.

스타
18,983
포크
1,618
열린 이슈
492
마지막 커밋
지난달

어떤 프로젝트인가요?

migrate는 로컬 파일 시스템, S3, GitHub 같은 소스에서 버전이 지정된 마이그레이션 파일을 읽어 대상 데이터베이스에 순서대로 적용합니다. 각 마이그레이션은 up 파일과 down 파일 한 쌍으로 구성되어 변경 사항을 적용하거나 되돌릴 수 있습니다. 실행은 데이터베이스 드라이버가 담당하고, 핵심 로직은 순서와 상태 관리를 한곳에서 처리합니다.

PostgreSQL, MySQL 및 MariaDB, SQLite, MongoDB, Cassandra, Neo4j, Google Cloud Spanner, CockroachDB, ClickHouse, SQL Server 등 다양한 데이터베이스를 지원합니다. 마이그레이션 소스로는 파일 시스템 경로, io/fs, 임베디드 바이너리 데이터, GitHub, GitLab, Bitbucket, AWS S3, Google Cloud Storage를 사용할 수 있습니다.

독립 실행형 명령줄 도구로 실행하거나 공식 Docker 이미지를 사용하고, Go 라이브러리로 가져와 사용할 수도 있습니다. 라이브러리에 자체 데이터베이스 클라이언트와 로거를 전달할 수 있으며, 마이그레이션이 중간 상태로 남는 일을 방지하는 데 도움이 되는 graceful stop도 지원합니다.

핵심 기능

  • 01버전 순서에 따라 up 및 down 마이그레이션 파일을 적용합니다.
  • 02PostgreSQL, MySQL, SQLite, MongoDB, Spanner를 비롯한 여러 데이터베이스를 지원합니다.
  • 03파일 시스템, 임베디드 데이터, Git 호스팅 서비스, 클라우드 스토리지에서 마이그레이션을 읽습니다.
  • 04CLI, Docker 이미지, Go 라이브러리를 제공합니다.
  • 05라이브러리로 사용할 때 기존 데이터베이스 클라이언트와 사용자 지정 로거를 전달할 수 있습니다.

활용 사례

  • PostgreSQL 또는 MySQL을 사용하는 Go 서비스의 스키마 변경 사항을 버전 관리합니다.
  • CI/CD 또는 컨테이너 배포 파이프라인의 단계로 마이그레이션을 실행합니다.
  • 마이그레이션을 Go 바이너리에 포함해 애플리케이션과 함께 배포합니다.
  • 하나의 도구로 여러 데이터베이스 엔진의 스키마 변경 사항을 관리합니다.

빠른 시작

  1. 1

    시작 가이드를 읽고 안내된 대로 CLI를 설치하세요

  2. 2

    마이그레이션 디렉터리 플레이스홀더를 바꿔 Docker로 마이그레이션을 실행하세요

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

사용 전 알아둘 점

  • 프로젝트 메타데이터에 라이선스가 명확하게 표시되어 있지 않으므로, 사용하기 전에 저장소의 라이선스 조건을 확인하세요.

토픽

자주 묻는 질문

migrate은(는) 무엇인가요?
여러 데이터베이스에서 순서가 지정된 스키마 변경을 적용하는 CLI 및 라이브러리 기반 Go 데이터베이스 마이그레이션 도구입니다. migrate는 로컬 파일 시스템, S3, GitHub 같은 소스에서 버전이 지정된 마이그레이션 파일을 읽어 대상 데이터베이스에 순서대로 적용합니다. 각 마이그레이션은 up 파일과 down 파일 한 쌍으로 구성되어 변경 사항을 적용하거나 되돌릴 수 있습니다. 실행은 데이터베이스 드라이버가 담당하고, 핵심 로직은 순서와 상태 관리를 한곳에서 처리합니다.
migrate은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
migrate은(는) Other 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
migrate은(는) 아직 유지보수되고 있나요?
6개월 이내 업데이트. migrate의 마지막 커밋은 2026년 9월 9일입니다.
migrate은(는) 어디에 사용할 수 있나요?
PostgreSQL 또는 MySQL을 사용하는 Go 서비스의 스키마 변경 사항을 버전 관리합니다. CI/CD 또는 컨테이너 배포 파이프라인의 단계로 마이그레이션을 실행합니다. 마이그레이션을 Go 바이너리에 포함해 애플리케이션과 함께 배포합니다. 하나의 도구로 여러 데이터베이스 엔진의 스키마 변경 사항을 관리합니다.
migrate는 어떻게 설치하나요?
시작 가이드를 읽고 안내된 대로 CLI를 설치하세요 마이그레이션 디렉터리 플레이스홀더를 바꿔 Docker로 마이그레이션을 실행하세요: docker run -v {{ migration dir }}:/migrations --network host migrate/migrate -path=/migrations/ -database postgres://localhost:5432/database up 2
migrate은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/golang-migrate/migrate

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트