Linux, macOS, Windows에서 MySQL, PostgreSQL, SQLite, SQL Server 등 다양한 DB를 지원하는 크로스 플랫폼 SQL 편집기 및 데이터베이스 관리자입니다.
amacneil/dbmate
팀과 환경 전반에서 일반 SQL 데이터베이스 마이그레이션을 관리하는 경량 프레임워크 독립형 CLI 도구입니다.
- 스타
- 7,465
- 포크
- 385
- 열린 이슈
- 31
- 마지막 커밋
- 17시간 전
어떤 프로젝트인가요?
Dbmate는 타임스탬프 버전이 부여된 SQL 마이그레이션 파일을 실행해 개발자와 프로덕션 서버 간에 데이터베이스 스키마를 일관되게 유지합니다. 독립 실행형 바이너리로 제공되므로 Go, Node.js, Python, Ruby, PHP, Rust, C++ 등 지원되는 데이터베이스와 통신하는 모든 스택에서 함께 사용할 수 있습니다.
마이그레이션은 하나의 파일에 `migrate:up` 및 `migrate:down` 섹션을 두는 일반 SQL 형식으로 작성합니다. 각 마이그레이션은 기본적으로 트랜잭션 내에서 실행되며, 적용된 버전은 `schema_migrations` 테이블에 기록됩니다. Dbmate는 결과 스키마를 `schema.sql` 파일로 덤프할 수도 있어 git에서 스키마 변경 사항을 읽기 쉬운 diff로 확인할 수 있습니다.
PostgreSQL, MySQL, MariaDB, SQLite, ClickHouse, BigQuery와 PostgreSQL 인터페이스를 통한 Spanner를 지원합니다. 연결 정보는 `DATABASE_URL` 변수나 `.env` 파일에서 가져오며, 데이터베이스 생성 및 삭제, 데이터베이스 준비 완료 대기, 롤백 등의 명령을 제공합니다.
핵심 기능
- 01up 및 down 섹션을 포함하는 일반 SQL 마이그레이션 파일
- 02개발자 간 버전 충돌을 방지하는 타임스탬프 버전 마이그레이션
- 03기본적으로 트랜잭션 내에서 원자적으로 실행되는 마이그레이션
- 04버전 관리에서 스키마 변경 사항을 검토할 수 있도록 `schema.sql` 파일을 덤프
- 05환경 변수나 `.env` 파일에서 연결 URL을 읽음
활용 사례
- 하나의 애플리케이션을 개발하는 팀 전체에서 스키마 변경 사항을 일관되게 유지
- 서로 다른 언어로 작성된 여러 서비스의 마이그레이션 관리
- 테스트 스위트를 실행하기 전에 CI에서 테스트 데이터베이스를 생성하고 삭제
- 데이터베이스 준비 대기 단계를 거쳐 프로덕션이나 컨테이너에서 마이그레이션 실행
빠른 시작
- 1
macOS에서 Homebrew로 설치하기
brew install dbmate - 2
설치된 도구에서 도움말이 표시되는지 확인하기
dbmate --help - 3
NPM을 개발 종속성으로 설치하기
npm install --save-dev dbmate
사용 전 알아둘 점
- 데이터베이스 연결 URL이 필요하므로 PostgreSQL, MySQL 또는 SQLite와 같은 데이터베이스 서버를 실행해야 합니다.
- PostgreSQL 연결은 기본적으로 TLS가 필요하므로 로컬 환경에서는 sslmode=disable을 추가해야 하는 경우가 많습니다.
토픽
자주 묻는 질문
- dbmate은(는) 무엇인가요?
- 팀과 환경 전반에서 일반 SQL 데이터베이스 마이그레이션을 관리하는 경량 프레임워크 독립형 CLI 도구입니다. Dbmate는 타임스탬프 버전이 부여된 SQL 마이그레이션 파일을 실행해 개발자와 프로덕션 서버 간에 데이터베이스 스키마를 일관되게 유지합니다. 독립 실행형 바이너리로 제공되므로 Go, Node.js, Python, Ruby, PHP, Rust, C++ 등 지원되는 데이터베이스와 통신하는 모든 스택에서 함께 사용할 수 있습니다.
- dbmate은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- dbmate은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- dbmate은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. dbmate의 마지막 커밋은 2026년 10월 18일입니다.
- dbmate은(는) 어디에 사용할 수 있나요?
- 하나의 애플리케이션을 개발하는 팀 전체에서 스키마 변경 사항을 일관되게 유지 서로 다른 언어로 작성된 여러 서비스의 마이그레이션 관리 테스트 스위트를 실행하기 전에 CI에서 테스트 데이터베이스를 생성하고 삭제 데이터베이스 준비 대기 단계를 거쳐 프로덕션이나 컨테이너에서 마이그레이션 실행
- dbmate는 어떻게 설치하나요?
- macOS에서 Homebrew로 설치하기: brew install dbmate 설치된 도구에서 도움말이 표시되는지 확인하기: dbmate --help NPM을 개발 종속성으로 설치하기: npm install --save-dev dbmate
- dbmate은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/amacneil/dbmate
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
100개 이상의 데이터베이스를 지원하는 가벼운 크로스 플랫폼 클라이언트로, 데스크톱·Docker·CLI와 AI SQL 어시스턴트, MCP 서버를 제공합니다.
lazygit에서 영감을 받은 키보드 중심의 SQL 데이터베이스 연결 및 쿼리용 터미널 UI입니다.
복잡하고 규모가 큰 데이터베이스의 ERD를 제공하는 풀스택 스키마 탐색 도구
데이터 옆에 배포해 수십 가지 데이터베이스와 데이터 저장소에 연결하는 브라우저 기반 SQL IDE
PostgreSQL, MySQL 등 여러 DB를 지원하는 macOS·Windows·Linux용 네이티브 IDE