drizzle-kit export는 Drizzle 스키마의 SQL 표현을 내보내고, 콘솔에 SQL DDL 표현을 출력할 수 있게 해줍니다.
내부 동작 원리
Drizzle Kit의 export 커맨드는 다음과 같은 순서로 동작합니다:
Drizzle 스키마 파일을 읽고, 스키마의 JSON 스냅샷을 생성합니다.
JSON 차이를 기반으로 SQL DDL 문을 생성합니다.
생성된 SQL DDL 문을 콘솔에 출력합니다.
이 기능은 Drizzle 마이그레이션을 관리하는 코드베이스 우선 접근 방식을 지원하기 위해 설계되었습니다. Drizzle 스키마의 SQL 표현을 내보내면, Atlas와 같은 외부 도구가 모든 마이그레이션을 처리할 수 있습니다.
drizzle-kit export 커맨드를 사용하려면 dialect와 schema 경로 옵션을 제공해야 합니다. 이 옵션은 drizzle.config.ts 설정 파일을 통해 설정하거나, CLI 옵션으로 직접 지정할 수 있습니다.
설정 파일 사용
CLI 옵션 사용
스키마 파일 경로
여러분은 하나의 schema.ts 파일을 사용하거나, 프로젝트 전체에 걸쳐 원하는 만큼의 스키마 파일을 분산시킬 수 있습니다. Drizzle Kit은 이 파일들의 경로를 glob 형식으로 schema 설정 옵션을 통해 지정해야 합니다.
예제 1
예제 2
예제 3
예제 4
하나의 프로젝트에 여러 설정 파일 사용하기
여러분은 프로젝트 내에 여러 개의 설정 파일을 가질 수 있습니다. 이는 여러 데이터베이스 단계나 여러 데이터베이스, 또는 동일한 프로젝트 내에서 서로 다른 데이터베이스를 사용할 때 매우 유용합니다.
위 예제에서 볼 수 있듯이, 프로젝트 구조 내에 drizzle-dev.config.ts와 drizzle-prod.config.ts라는 두 개의 설정 파일이 있습니다. 각 파일은 개발 환경과 프로덕션 환경에 맞게 구성할 수 있습니다. 이를 통해 환경에 따라 다른 설정을 쉽게 적용할 수 있습니다.
확장 가능한 설정 목록
drizzle-kit export 명령어는 CLI 전용 옵션 목록을 제공합니다.
--sql
Drizzle 스키마의 SQL 표현 생성
기본적으로 Drizzle Kit은 SQL 파일을 출력하지만, 향후 다양한 형식을 지원할 예정입니다.
npm
yarn
pnpm
bun
drizzle-kit 설정은 drizzle.config.ts 파일을 통해 구성하는 것을 권장합니다. 하지만 CI/CD 파이프라인 등에서 필요한 경우 CLI를 통해 모든 설정 옵션을 제공할 수도 있습니다.
dialect
required
데이터베이스 방언,
위 코드는 frontmatter.dialects 배열에 있는 각 데이터베이스 방언(dialect)을 순회하며 <code> 태그로 감싸고, 각 항목 뒤에 공백을 추가하는 코드입니다. 이렇게 하면 각 방언 이름이 코드 형식으로 표시되고, 항목 사이에 공백이 생깁니다.
중 하나 선택
schema
required
타입스크립트 스키마 파일 또는 여러 스키마 파일이 있는 폴더 경로
config
설정 파일 경로, 기본값은 drizzle.config.ts
예제
./src/schema.ts에 위치한 Drizzle 스키마를 콘솔로 내보내는 방법을 보여주는 예제입니다.
Drizzle 설정 파일은 configs 폴더에 위치시킬 것입니다.