Drizzle와 SQLite 연동
Drizzle는 libsql
과 better-sqlite3
드라이버를 통해 SQLite 연결을 기본적으로 지원합니다.
libsql
과 better-sqlite3
드라이버를 사용하고 Drizzle ORM과 통합하면서 발견한 몇 가지 차이점이 있습니다. 예를 들어:
드라이버 수준에서는 두 드라이버 간에 큰 차이가 없지만, 주요 차이점은 libSQL
이 SQLite 파일과 Turso
원격 데이터베이스 모두에 연결할 수 있다는 점입니다. LibSQL은 SQLite의 포크로, 표준 SQLite보다 더 많은 기능을 제공합니다. 예를 들면:
libSQL
드라이버를 사용하면 더 많은 ALTER 문을 사용할 수 있어, better-sqlite3
만 사용할 때보다 스키마를 더 쉽게 관리할 수 있습니다.
- 데이터 암호화 기능을 기본적으로 설정할 수 있습니다.
- SQLite 데이터베이스에서 지원하는 대규모 확장 기능도
libSQL
에서 지원됩니다.
libsql
1단계 - 패키지 설치
다음 명령어를 사용하여 필요한 패키지를 설치합니다.
drizzle-orm
: 데이터베이스 ORM 라이브러리
@libsql/client
: SQLite 클라이언트
drizzle-kit
: 개발 도구 (개발 의존성으로 설치)
2단계 - 드라이버 초기화
Drizzle는 모든 @libsql/client 드라이버 변형을 기본적으로 지원합니다:
| |
---|
@libsql/client | 기본적으로 node 모듈로 임포트되며, 번들러에서 target 이나 platform 이 설정되면 자동으로 web 모듈로 변경됩니다. 예를 들어, esbuild --platform=browser 와 같은 설정이 적용됩니다. |
@libsql/client/node | node 호환 모듈로, :memory: , file , wss , http , turso 연결 프로토콜을 지원합니다. |
@libsql/client/web | next , nuxt , astro 와 같은 풀스택 웹 프레임워크를 위한 모듈입니다. |
@libsql/client/http | http 및 https 연결 프로토콜을 위한 모듈입니다. |
@libsql/client/ws | ws 및 wss 연결 프로토콜을 위한 모듈입니다. |
@libsql/client/sqlite3 | :memory: 및 file 연결 프로토콜을 위한 모듈입니다. |
@libsql/client-wasm | WASM을 위한 별도의 실험적 패키지입니다. |
3단계 - 쿼리 만들기
동기식 연결이 필요하다면, 추가 연결 API를 사용할 수 있습니다. 이때 드라이버 연결을 지정하고 Drizzle 인스턴스에 전달합니다.
better-sqlite3
1단계 - 패키지 설치
위 명령어를 사용하여 필요한 패키지를 설치합니다. drizzle-orm
과 better-sqlite3
는 프로젝트에 필수적인 패키지이며, drizzle-kit
와 @types/better-sqlite3
는 개발 환경에서 사용할 패키지입니다.
2단계 - 드라이버 초기화 및 쿼리 실행
better-sqlite3
better-sqlite3 설정 포함
기존 드라이버를 제공해야 하는 경우:
다음 단계는 무엇인가요?