새로운 PostgreSQL용 선언형 스키마 마이그레이션 도구인 '피스타치오(Pistachio)'가 개발자 커뮤니티에 공개되었습니다. 이 도구는 개발자가 원하는 데이터베이스 스키마 상태를 SQL 파일로 선언하면, 현재 데이터베이스와의 차이점을 자동으로 감지하여 필요한 DDL(데이터 정의어) 스크립트를 생성해주는 방식으로 작동합니다. 이는 기존의 스키마 마이그레이션 도구들이 복잡한 SQL 구문을 제대로 파싱하지 못해 발생했던 문제점을 해결하기 위해 개발되었습니다.
피스타치오는 'pg_query_go' 라이브러리를 사용하여 PostgreSQL의 공식 SQL 파서를 직접 활용합니다. 덕분에 기존 도구들이 처리하기 어려웠던 다양한 SQL 구문도 정확하게 분석할 수 있습니다. 사용자는 `pista plan desired.sql` 명령어로 변경될 내용을 미리 확인하고, `pista apply desired.sql` 명령어로 실제 데이터베이스에 변경 사항을 적용할 수 있습니다. 특히, `CREATE INDEX CONCURRENTLY`와 같은 동시성(concurrently) 옵션을 지원하여 서비스 중단 없이 인덱스를 생성하거나 삭제할 수 있는 기능도 제공합니다.
이러한 선언형 스키마 관리 방식은 데이터베이스 변경 사항을 코드처럼 관리(Database as Code)할 수 있게 하여 개발 및 배포 프로세스의 안정성과 효율성을 크게 높여줍니다. 개발팀은 스키마 변경 이력을 버전 관리 시스템에 통합하고, CI/CD(지속적 통합/지속적 배포) 파이프라인에 쉽게 연동하여 자동화된 배포를 구현할 수 있습니다. 이는 특히 대규모 서비스나 마이크로서비스 아키텍처에서 데이터베이스 스키마의 일관성을 유지하고 변경으로 인한 위험을 최소화하는 데 중요한 역할을 할 것입니다.