설치 중에 의존성 문제가 발생할 경우:
React Native를 사용하지 않는다면, --force
또는 --legacy-peer-deps
옵션을 사용하여 강제로 설치하면 문제가 해결될 수 있습니다. React Native를 사용한다면, React Native 버전과 호환되는 정확한 React 버전을 사용해야 합니다.
이 튜토리얼은 Vercel Functions와 Edge 런타임에서 Drizzle ORM을 사용하는 방법을 보여줍니다.
설치 중에 의존성 문제가 발생할 경우:
React Native를 사용하지 않는다면, --force
또는 --legacy-peer-deps
옵션을 사용하여 강제로 설치하면 문제가 해결될 수 있습니다. React Native를 사용한다면, React Native 버전과 호환되는 정확한 React 버전을 사용해야 합니다.
Drizzle ORM을 Vercel Edge 함수와 함께 사용할 때는 Edge 호환 드라이버를 사용해야 합니다. 이는 함수가 Node.js 런타임이 아닌 Edge 런타임에서 실행되기 때문입니다. 따라서 표준 Node.js API에는 몇 가지 제한이 있습니다.
데이터베이스 방언에 따라 다음 드라이버 중 하나를 선택할 수 있습니다:
Neon Postgres
에 연결할 때 이 드라이버를 사용하는 것을 권장합니다.Neon serverless driver
를 기반으로 구축되었습니다. Vercel Postgres
에 연결할 때 이 드라이버를 사용하는 것을 권장합니다.MySQL
클라이언트에 접근하여 HTTP 연결을 통해 쿼리를 실행할 수 있습니다. 일반적으로 클라우드 제공자에 의해 차단되지 않습니다.@neondatabase/serverless
드라이버 설치@neondatabase/serverless
드라이버를 설치하려면 다음 명령어를 사용하세요:
src/db
디렉토리에 schema.ts
파일을 생성하고 테이블 스키마를 선언합니다:
이 코드는 users_table
이라는 테이블을 정의합니다. 테이블은 id
, name
, age
, email
네 개의 컬럼을 가지며, 각 컬럼은 특정한 제약 조건을 가지고 있습니다.
Drizzle 설정 파일은 Drizzle Kit에서 사용하는 설정 파일로, 데이터베이스 연결 정보, 마이그레이션 폴더, 스키마 파일 등에 대한 모든 정보를 담고 있습니다.
프로젝트 루트에 drizzle.config.ts
파일을 생성하고 다음 내용을 추가하세요:
.env
파일에 데이터베이스 연결 문자열을 설정하세요:
이 설정 파일을 통해 Drizzle Kit은 데이터베이스 연결 정보를 읽고, 스키마 파일을 기반으로 마이그레이션 작업을 수행할 수 있습니다.
drizzle-kit generate
커맨드를 사용해 마이그레이션을 생성하고, drizzle-kit migrate
커맨드로 실행할 수 있습니다.
마이그레이션 생성:
생성된 마이그레이션은 drizzle.config.ts
에 지정된 drizzle
디렉토리에 저장됩니다. 이 디렉토리에는 데이터베이스 스키마를 업데이트하는 데 필요한 SQL 파일과, 다양한 마이그레이션 단계에서의 스키마 스냅샷을 저장하는 meta
폴더가 포함됩니다.
생성된 마이그레이션 예제:
마이그레이션 실행:
또는, Drizzle kit push 커맨드를 사용해 데이터베이스에 직접 변경 사항을 적용할 수도 있습니다:
push 커맨드는 로컬 개발 환경에서 새로운 스키마 디자인이나 변경 사항을 빠르게 테스트해야 할 때 유용합니다. 마이그레이션 파일을 관리하는 오버헤드 없이 빠르게 반복 작업을 할 수 있습니다.
src/db
디렉토리에 index.ts
파일을 생성하고 데이터베이스 설정을 구성합니다:
이 코드는 Drizzle ORM을 사용하여 데이터베이스에 연결하는 기본 설정을 보여줍니다. process.env.POSTGRES_URL
은 환경 변수에서 데이터베이스 연결 URL을 가져옵니다. 이 URL을 사용하여 Drizzle ORM이 데이터베이스와 상호작용할 수 있도록 합니다.
src/app/api/hello
디렉토리에 route.ts
파일을 생성합니다. 함수 작성 방법에 대해 더 알아보려면 Functions API Reference와 Vercel Functions Quickstart를 참고하세요.
로컬 개발 서버를 시작하려면 next dev
명령어를 실행하세요:
브라우저에서 생성한 라우트(예: /api/hello
)로 이동하면 다음과 같은 결과를 확인할 수 있습니다:
대시보드에서 새 프로젝트를 생성하거나 vercel
커맨드를 실행하여 프로젝트를 배포합니다:
TURSO_CONNECTION_URL
환경 변수를 추가합니다:
TURSO_AUTH_TOKEN
환경 변수를 추가합니다:
환경 변수를 업데이트하려면 프로젝트를 다시 배포합니다:
마지막으로, 배포된 프로젝트의 URL을 사용하여 생성한 라우트(예: /api/hello
)로 이동하면 엣지 함수에 접근할 수 있습니다.
Vercel Postgres 클라이언트와 함께 Drizzle를 사용하는 빠른 시작 가이드는 문서에서 확인할 수 있습니다.
@vercel/postgres
드라이버 설치@vercel/postgres
드라이버를 설치하려면 다음 명령어를 사용하세요:
src/db
디렉토리에 schema.ts
파일을 생성하고, 테이블 스키마를 선언해 보겠습니다.
이 코드는 users_table
이라는 테이블을 정의합니다. 각 컬럼은 다음과 같은 역할을 합니다:
id
: 고유 식별자로 사용되며, 자동으로 증가하는 시리얼 값입니다.name
: 사용자의 이름을 저장하며, 필수 입력 항목입니다.age
: 사용자의 나이를 저장하며, 필수 입력 항목입니다.email
: 사용자의 이메일을 저장하며, 필수 입력 항목이고 중복될 수 없습니다.Drizzle config는 Drizzle Kit에서 사용하는 설정 파일로, 데이터베이스 연결 정보, 마이그레이션 폴더, 스키마 파일 등에 대한 모든 정보를 포함합니다.
프로젝트 루트에 drizzle.config.ts
파일을 생성하고 다음 내용을 추가하세요:
.env
파일에 데이터베이스 연결 문자열을 설정하세요:
이 설정 파일은 Drizzle Kit이 데이터베이스와 상호작용할 때 필요한 정보를 제공합니다. schema
는 데이터베이스 스키마를 정의한 파일의 경로를, dialect
는 사용할 데이터베이스 종류를 지정합니다. dbCredentials
에는 데이터베이스 연결에 필요한 URL을 환경 변수에서 가져와 설정합니다.
drizzle-kit generate
커맨드를 사용해 마이그레이션을 생성하고, drizzle-kit migrate
커맨드로 실행할 수 있습니다.
마이그레이션 생성하기:
생성된 마이그레이션은 drizzle.config.ts
에 지정된 drizzle
디렉토리에 저장됩니다. 이 디렉토리에는 데이터베이스 스키마를 업데이트하는 데 필요한 SQL 파일과, 다양한 마이그레이션 단계에서의 스키마 스냅샷을 저장하는 meta
폴더가 포함됩니다.
생성된 마이그레이션 예시:
마이그레이션 실행하기:
또는, Drizzle kit push 커맨드를 사용해 데이터베이스에 직접 변경 사항을 적용할 수도 있습니다:
push
커맨드는 로컬 개발 환경에서 새로운 스키마 디자인이나 변경 사항을 빠르게 테스트해야 할 때 유용합니다. 마이그레이션 파일을 관리하는 오버헤드 없이 빠르게 반복 작업을 할 수 있습니다.
src/db
디렉토리에 index.ts
파일을 생성하고 데이터베이스 설정을 구성합니다:
이 코드는 Drizzle ORM을 사용하여 데이터베이스에 연결하는 기본 설정을 보여줍니다. drizzle
함수를 호출하여 데이터베이스 연결을 초기화하고, 이를 db
라는 이름으로 내보냅니다. 이제 이 db
객체를 사용하여 데이터베이스 작업을 수행할 수 있습니다.
src/app/api/hello
디렉토리에 route.ts
파일을 생성합니다. 함수 작성 방법에 대해 더 알아보려면 Functions API Reference와 Vercel Functions Quickstart를 참고하세요.
로컬 개발 서버를 시작하려면 next dev
명령어를 실행하세요:
브라우저에서 생성한 라우트(예: /api/hello
)로 이동하면 다음과 같은 결과를 확인할 수 있습니다:
대시보드에서 새 프로젝트를 생성하거나 vercel
커맨드를 실행하여 프로젝트를 배포할 수 있습니다:
POSTGRES_URL
환경 변수를 추가합니다:
환경 변수를 업데이트하려면 프로젝트를 다시 배포합니다:
마지막으로, 배포된 프로젝트의 URL을 사용하여 생성한 라우트(예: /api/hello
)로 이동하여 엣지 함수에 접근할 수 있습니다.
이 튜토리얼에서는 PlanetScale MySQL을 사용합니다.
@planetscale/database
드라이버 설치@planetscale/database
드라이버를 설치하려면 다음 명령어를 사용하세요:
src/db
디렉토리에 schema.ts
파일을 생성하고 테이블 스키마를 선언합니다:
이 코드는 users_table
이라는 테이블을 정의하며, 각 컬럼은 특정 타입과 제약 조건을 가지고 있습니다.
Drizzle config는 Drizzle Kit에서 사용하는 설정 파일로, 데이터베이스 연결 정보, 마이그레이션 폴더, 스키마 파일 등에 대한 모든 정보를 담고 있습니다.
프로젝트 루트에 drizzle.config.ts
파일을 생성하고 다음 내용을 추가하세요:
.env
파일에 데이터베이스 연결 문자열을 설정하세요:
이 설정 파일을 통해 Drizzle Kit이 데이터베이스와 상호작용할 수 있습니다.
database_3Tamy3V8kBSGS9gUpuLvCp
)drizzle-kit generate
커맨드를 사용해 마이그레이션을 생성하고, drizzle-kit migrate
커맨드로 실행할 수 있습니다.
마이그레이션 생성하기:
생성된 마이그레이션은 drizzle.config.ts
에 지정된 drizzle
디렉토리에 저장됩니다. 이 디렉토리에는 데이터베이스 스키마를 업데이트하는 데 필요한 SQL 파일과, 마이그레이션 단계별 스키마 스냅샷을 저장하는 meta
폴더가 포함됩니다.
생성된 마이그레이션 예시:
마이그레이션 실행하기:
또는, Drizzle kit push 커맨드를 사용해 데이터베이스에 직접 변경 사항을 적용할 수도 있습니다:
push
커맨드는 로컬 개발 환경에서 새로운 스키마 디자인이나 변경 사항을 빠르게 테스트할 때 유용합니다. 마이그레이션 파일을 관리하는 오버헤드 없이 빠르게 반복 작업을 할 수 있습니다.
src/db
디렉토리에 index.ts
파일을 생성하고 데이터베이스 설정을 구성합니다:
이 코드는 Drizzle ORM을 사용하여 PlanetScale 서버리스 데이터베이스에 연결하는 기본 설정을 보여줍니다. process.env.MYSQL_URL
은 환경 변수에서 데이터베이스 연결 URL을 가져옵니다.
_MtdbmdzXShYBWmYTQZPsva
src/app/api/hello
디렉토리에 route.ts
파일을 생성합니다. 함수 작성 방법에 대해 더 알아보려면 Functions API Reference와 Vercel Functions Quickstart를 참고하세요.
dynamic = 'force-dynamic'
: 기본적으로 라우트는 정적(static)으로 처리되지만, 이 설정을 통해 요청 시 동적(dynamic)으로 변경됩니다.runtime = 'edge'
: 이 라우트가 엣지 런타임에서 실행되도록 지정합니다.GET
함수: 데이터베이스에서 사용자 데이터를 조회한 후, JSON 형식으로 응답을 반환합니다.로컬 개발 서버를 시작하려면 next dev
커맨드를 실행하세요:
브라우저에서 생성한 라우트(예: /api/hello
)로 이동하면 다음과 같은 결과를 확인할 수 있습니다:
대시보드에서 새 프로젝트를 생성하거나 vercel
커맨드를 실행하여 프로젝트를 배포할 수 있습니다:
MYSQL_URL
환경 변수를 추가합니다:
환경 변수를 업데이트하려면 프로젝트를 다시 배포하세요:
마지막으로, 배포된 프로젝트의 URL을 사용하여 생성한 라우트(예: /api/hello
)로 이동하면 엣지 함수에 접근할 수 있습니다.
Turso와 Drizzle을 함께 사용하는 방법은 빠른 시작 가이드나 튜토리얼에서 확인할 수 있습니다.
@libsql/client
드라이버 설치하기@libsql/client
드라이버를 설치하려면 다음 명령어를 사용하세요:
src/db
디렉토리에 schema.ts
파일을 생성하고 테이블 스키마를 선언합니다:
이 코드는 SQLite 데이터베이스에 users_table
이라는 테이블을 정의합니다. 각 컬럼은 특정 타입과 제약 조건을 가지고 있습니다.
Drizzle 설정 파일은 Drizzle Kit에서 사용하는 설정 파일로, 데이터베이스 연결 정보, 마이그레이션 폴더, 스키마 파일 등에 대한 모든 정보를 포함합니다.
프로젝트 루트에 drizzle.config.ts
파일을 생성하고 다음 내용을 추가하세요:
.env
파일에 데이터베이스 연결 문자열과 인증 토큰을 설정하세요:
이 설정 파일을 통해 Drizzle Kit은 데이터베이스 연결 정보를 읽어와 스키마 파일을 기반으로 마이그레이션을 수행할 수 있습니다.
drizzle-kit generate
커맨드를 사용해 마이그레이션을 생성하고, drizzle-kit migrate
커맨드로 실행할 수 있습니다.
마이그레이션 생성:
생성된 마이그레이션은 drizzle.config.ts
에 지정된 drizzle
디렉토리에 저장됩니다. 이 디렉토리에는 데이터베이스 스키마를 업데이트하는 데 필요한 SQL 파일과, 다양한 마이그레이션 단계에서의 스키마 스냅샷을 저장하는 meta
폴더가 포함됩니다.
생성된 마이그레이션 예제:
마이그레이션 실행:
또는, Drizzle kit push 커맨드를 사용해 데이터베이스에 직접 변경 사항을 적용할 수도 있습니다:
push 커맨드는 로컬 개발 환경에서 새로운 스키마 디자인이나 변경 사항을 빠르게 테스트해야 할 때 유용합니다. 마이그레이션 파일을 관리하는 오버헤드 없이 빠르게 반복 작업을 할 수 있습니다.
src/db
디렉토리에 index.ts
파일을 생성하고 데이터베이스 설정을 구성합니다:
이 코드는 Drizzle ORM을 사용하여 데이터베이스에 연결하는 기본 설정을 보여줍니다. TURSO_CONNECTION_URL
과 TURSO_AUTH_TOKEN
은 환경 변수에서 가져옵니다.
src/app/api/hello
디렉토리에 route.ts
파일을 생성합니다. 함수 작성 방법에 대해 더 알아보려면 Functions API Reference와 Vercel Functions Quickstart를 참고하세요.
로컬 개발 서버를 시작하려면 next dev
명령어를 실행하세요:
브라우저에서 생성한 라우트(예: /api/hello
)로 이동하면 다음과 같은 결과를 확인할 수 있습니다:
Create a new project in the dashboard or run the vercel
command to deploy your project:
Add TURSO_CONNECTION_URL
environment variable:
Add TURSO_AUTH_TOKEN
environment variable:
Redeploy your project to update your environment variables:
Finally, you can use URL of the deployed project and navigate to the route you created (e.g. /api/hello)
to access your edge function.