Postgres 마이그레이션은 안전할까, 안전하지 않을까?
1 hour ago
2
- safe-not-safe는 PostgreSQL 마이그레이션 SQL을 입력하고 검사하는 도구로, 브라우저 편집기와 CLI 실행 명령을 제공함
- SQL 파싱에는 libpg_query 17의 WASM 버전을 사용하며, 브라우저 탭의 웹 워커에서 다운로드하고 컴파일함
- 입력 내용은 업로드하지 않으며, 편집 버퍼는 현재 탭에만 존재하고 디스크에 저장되지 않음
- 검사 조건으로 대상 테이블의 행 수와 도구가 DDL을 트랜잭션으로 감싸는지 여부를 설정할 수 있음
- 제공된 화면은 파서 로딩 중이므로, 표시된 문장 수와 경고 수 0건은 예제 SQL의 안전성 판정 결과가 아님
브라우저에서 마이그레이션 SQL 검사
- safe-not-safe는 migration.sql 편집 영역과 검사 상태, 경고 수를 표시하는 인터페이스를 제공함
- 검사 조건에는 대상 테이블의 행 수와 DDL을 트랜잭션으로 감싸는지 여부가 있음
- 화면에 표시된 CLI 실행 명령은 npx safe-not-safe check migration.sql임
- 소스 코드는 GitHub에서 확인할 수 있음
파서 실행과 데이터 보관
- libpg_query 17 WASM을 브라우저 워커에서 다운로드하고 컴파일해 PostgreSQL SQL을 파싱함
- 입력 내용은 업로드하지 않으며, 파서는 현재 탭의 웹 워커에서 실행됨
- 편집 버퍼는 현재 탭에만 유지되고 디스크에는 저장되지 않으며, 텔레메트리를 사용하지 않음
예제 SQL과 현재 검사 상태
- 편집기에 표시된 예제 마이그레이션에는 다음 작업이 들어 있음
- users 테이블에 기본값이 'active'인 status text 열을 추가함
- CREATE INDEX CONCURRENTLY로 users(created_at) 인덱스를 생성함
- orders.user_id가 users(id)를 참조하는 외래 키를 NOT VALID로 추가함
- VALIDATE CONSTRAINT로 해당 외래 키 제약 조건을 검증함
- 현재 화면은 CHECKING 상태이며 PostgreSQL 파서를 로딩하고 있음
- 파서 초기화 중 문장 수와 경고 수가 모두 0으로 표시됨
- 개별 SQL 문장의 안전 여부나 구체적인 경고 결과는 아직 표시되지 않음
-
Homepage
-
개발자
- Postgres 마이그레이션은 안전할까, 안전하지 않을까?