Cloudflare D1 Adapter
리소스
설정
설치
npm install next-auth @auth/d1-adapter
환경 변수
Cloudflare 플랫폼에서 환경 변수는 wrangler.toml
설정 파일을 통해 설정하거나, 관리자 대시보드에서 설정할 수 있습니다.
설정
./auth.ts
import NextAuth from "next-auth"
import { D1Adapter } from "@auth/d1-adapter"
export const { handlers, auth, signIn, signOut } = NextAuth({
providers: [],
adapter: D1Adapter(env.db),
})
마이그레이션
애플리케이션 초기화 과정에서 up(env.db)
함수를 실행하여 D1에 테이블을 생성해야 합니다. 이 함수는 accounts
, sessions
, users
, verification_tokens
라는 4개의 테이블을 생성합니다. 단, 해당 테이블이 이미 존재하지 않는 경우에만 생성됩니다.
현재는 테이블 접두사 ""
를 설정할 수 없습니다.
워커가 시작될 때마다 한 번씩 마이그레이션을 시도하려면 다음과 같은 코드를 사용할 수 있습니다. 마이그레이션을 여러 번 실행해도 기존 테이블이 삭제되지는 않습니다.
import { up } from "@auth/d1-adapter"
let migrated = false
async function migrationHandle({ event, resolve }) {
if (!migrated) {
try {
await up(event.platform.env.db)
migrated = true
} catch (e) {
console.log(e.cause.message, e.message)
}
}
return resolve(event)
}
- 테이블을 수동으로 초기화할 수도 있습니다. migrations.ts에서 관련 SQL과 위의
up()
함수 예제를 확인할 수 있습니다. - Cloudflare 대시보드에서 D1 데이터베이스 콘솔에 SQL을 붙여넣고 실행하면 됩니다.