본문 바로가기
WIKI 기술 지식 베이스

Prisma + Turso

원문 보기 위키 갱신

Prisma가 Turso 데이터베이스와 함께 동작하도록 설정하는 방법이에요. 어댑터 설치부터 스키마 설정, 마이그레이션, 쿼리까지 순서대로 따라오세요.

출처: 문서

본문

Prerequisites

시작하기 전에 다음을 확인하세요:

Install the libSQL SDK and its Prisma driver

npm install @libsql/client @prisma/adapter-libsql
pnpm add @libsql/client @prisma/adapter-libsql
yarn add @libsql/client @prisma/adapter-libsql

Retrieve database credentials

데이터베이스 자격 증명(URL과 인증 토큰)을 받아서 환경 변수로 저장해 두세요.

Enable the driverAdapters preview feature flag:

generator client {
  provider        = "prisma-client-js"
  previewFeatures = ["driverAdapters"]
}

datasource db {
  provider = "sqlite"
  url      = "file:./dev.db"
}

Generate Prisma client

npx prisma generate
pnpm dlx prisma generate

Update your Prisma Client Instance

Node.js / Serverless

import { PrismaClient } from "@prisma/client";
import { PrismaLibSQL } from "@prisma/adapter-libsql";

const adapter = new PrismaLibSQL({
  url: process.env.TURSO_DATABASE_URL,
  authToken: process.env.TURSO_AUTH_TOKEN,
})
const prisma = new PrismaClient({ adapter })

Edge Runtimes

import { PrismaClient } from "@prisma/client";
import { PrismaLibSQL } from "@prisma/adapter-libsql";

const adapter = new PrismaLibSQL({
  url: process.env.TURSO_DATABASE_URL,
  authToken: process.env.TURSO_AUTH_TOKEN,
})
const prisma = new PrismaClient({ adapter })

Database Migrations

Prisma Migrate와 Introspection 워크플로는 현재 Turso에서 지원되지 않아요 — 자세히 보기.

먼저 로컬 SQLite 데이터베이스를 대상으로 prisma migrate dev로 마이그레이션 파일을 생성해요.

npx prisma migrate dev --name init
pnpm dlx prisma migrate dev --name init

그다음 Turso CLI로 마이그레이션을 Turso 데이터베이스에 적용해요.

turso db shell turso-prisma-db < ./prisma/migrations/20230922132717_init/migration.sql

참고로, 20230922132717_init은 npx prisma migrate dev 명령으로 만들어진 여러분의 마이그레이션 이름으로 바꾸세요.

Query

const response = await prisma.table_name.findMany();

더 알아보기 (Learn more)