- 이 기사에서는 PostgreSQL을 위한 안전하고 되돌릴 수 있는 스키마 마이그레이션을 위해 설계된 새로운 명령 줄 도구인 pgroll을 소개합니다.
- 데이터베이스 스키마 마이그레이션은 시스템 업데이트에 필수적이지만, 잠재적인 파괴적 변화, 복잡한 다단계 프로세스, 예기치 않은 데이터베이스 잠금, 어려운 롤백 등의 도전과 함께 옵니다.
- 많은 개발자들이 복잡한 마이그레이션을 피하고 추가적인 변경만을 만들어, 데이터베이스 스키마에서 기술적 부채를 증가시킵니다.
-
pgroll은 마이그레이션이 위험 없고, 정의하고 실행하기 쉽고, 일반적인 배포 워크플로의 일부이며, 쉽게 되돌릴 수 있고, 특별한 오케스트레이션이 필요하지 않음을 보장함으로써 Postgres 스키마 진화를 더 나은 경험으로 만들기 위해 노력합니다.
- 이 도구는 사용자가 고수준 JSON 형식을 사용하여 스키마 마이그레이션을 정의하고 실행하는 것을 돕습니다.
-
pgroll의 주요 기능에는 다음이 포함됩니다:
- 고수준 JSON 형식으로 정의된 마이그레이션.
- 전체 마이그레이션 과정 동안 접근 가능한 스키마의 두 가지 버전 (이전 및 다음) 유지.
- 즉시 롤백.
- 제로 다운타임.
-
pgroll은 데이터베이스 스키마를 진화시키기 위해 확장 및 축소 패턴을 사용하며, 이전 및 새 버전의 스키마를 Postgres 물리 스키마 위의 "가상" 스키마로 사용 가능하게 합니다.
- 이 도구는 DDL 문을 실행하는 동안 Postgres 테이블에 잠금을 보장하고 데이터 액세스 차단을 방지합니다.
-
pgroll은 필요할 때 자동 백필을 수행하는 것도 처리합니다.
- 이 기사에서는 pgroll을 사용하여 열을 NOT NULL로 설정하는 방법에 대한 예를 제공합니다.
-
pgroll의 첫 번째 버전이 이제 사용 가능하며 Xata 팀은 사용자 피드백을 기대하고 있습니다.
- Xata는 기본적으로 생산 준비가 되어 있으며 일시 중지하거나 쿨다운하지 않는 업계 최고의 무료 플랜을 제공합니다.