53 lines
1.7 KiB
SQL
53 lines
1.7 KiB
SQL
-- Better Auth core schema (v1.x). Identifiers are camelCase and quoted to
|
|||
|
|
-- match Better Auth's default field->column mapping.
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS "user" (
|
||
|
|
"id" text PRIMARY KEY,
|
||
|
|
"name" text NOT NULL DEFAULT '',
|
||
|
|
"email" text NOT NULL UNIQUE,
|
||
|
|
"emailVerified" boolean NOT NULL DEFAULT false,
|
||
|
|
"image" text,
|
||
|
|
"createdAt" timestamptz NOT NULL DEFAULT now(),
|
||
|
|
"updatedAt" timestamptz NOT NULL DEFAULT now()
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS "session" (
|
||
|
|
"id" text PRIMARY KEY,
|
||
|
|
"expiresAt" timestamptz NOT NULL,
|
||
|
|
"token" text NOT NULL UNIQUE,
|
||
|
|
"createdAt" timestamptz NOT NULL DEFAULT now(),
|
||
|
|
"updatedAt" timestamptz NOT NULL DEFAULT now(),
|
||
|
|
"ipAddress" text,
|
||
|
|
"userAgent" text,
|
||
|
|
"userId" text NOT NULL REFERENCES "user"("id") ON DELETE CASCADE
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS "account" (
|
||
|
|
"id" text PRIMARY KEY,
|
||
|
|
"accountId" text NOT NULL,
|
||
|
|
"providerId" text NOT NULL,
|
||
|
|
"userId" text NOT NULL REFERENCES "user"("id") ON DELETE CASCADE,
|
||
|
|
"accessToken" text,
|
||
|
|
"refreshToken" text,
|
||
|
|
"idToken" text,
|
||
|
|
"accessTokenExpiresAt" timestamptz,
|
||
|
|
"refreshTokenExpiresAt" timestamptz,
|
||
|
|
"scope" text,
|
||
|
|
"password" text,
|
||
|
|
"createdAt" timestamptz NOT NULL DEFAULT now(),
|
||
|
|
"updatedAt" timestamptz NOT NULL DEFAULT now()
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS "verification" (
|
||
|
|
"id" text PRIMARY KEY,
|
||
|
|
"identifier" text NOT NULL,
|
||
|
|
"value" text NOT NULL,
|
||
|
|
"expiresAt" timestamptz NOT NULL,
|
||
|
|
"createdAt" timestamptz NOT NULL DEFAULT now(),
|
||
|
|
"updatedAt" timestamptz NOT NULL DEFAULT now()
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_session_user ON "session" ("userId");
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_account_user ON "account" ("userId");
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_verification_identifier ON "verification" ("identifier");
|