88 lines
3.0 KiB
SQL
88 lines
3.0 KiB
SQL
CREATE TABLE IF NOT EXISTS "account" (
|
|
"id" bigserial PRIMARY KEY NOT NULL,
|
|
"accountId" text NOT NULL,
|
|
"providerId" text NOT NULL,
|
|
"userId" uuid NOT NULL,
|
|
"accessToken" text,
|
|
"refreshToken" text,
|
|
"idToken" text,
|
|
"accessTokenExpiresAt" timestamp,
|
|
"refreshTokenExpiresAt" timestamp,
|
|
"scope" text,
|
|
"password" text,
|
|
"createdAt" timestamp NOT NULL,
|
|
"updatedAt" timestamp NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
ALTER TABLE "account" ENABLE ROW LEVEL SECURITY;--> statement-breakpoint
|
|
CREATE TABLE IF NOT EXISTS "apikey" (
|
|
"id" bigserial PRIMARY KEY NOT NULL,
|
|
"name" text,
|
|
"start" text,
|
|
"prefix" text,
|
|
"key" text NOT NULL,
|
|
"userId" uuid NOT NULL,
|
|
"refillInterval" integer,
|
|
"refillAmount" integer,
|
|
"lastRefillAt" timestamp,
|
|
"enabled" boolean,
|
|
"rateLimitEnabled" boolean,
|
|
"rateLimitTimeWindow" integer,
|
|
"rateLimitMax" integer,
|
|
"requestCount" integer,
|
|
"remaining" integer,
|
|
"lastRequest" timestamp,
|
|
"expiresAt" timestamp,
|
|
"createdAt" timestamp NOT NULL,
|
|
"updatedAt" timestamp NOT NULL,
|
|
"permissions" text,
|
|
"metadata" text
|
|
);
|
|
--> statement-breakpoint
|
|
ALTER TABLE "apikey" ENABLE ROW LEVEL SECURITY;--> statement-breakpoint
|
|
CREATE TABLE IF NOT EXISTS "session" (
|
|
"id" bigserial PRIMARY KEY NOT NULL,
|
|
"expiresAt" timestamp NOT NULL,
|
|
"token" text NOT NULL,
|
|
"createdAt" timestamp NOT NULL,
|
|
"updatedAt" timestamp NOT NULL,
|
|
"ipAddress" text,
|
|
"userAgent" text,
|
|
"userId" uuid NOT NULL,
|
|
CONSTRAINT "session_token_unique" UNIQUE("token")
|
|
);
|
|
--> statement-breakpoint
|
|
ALTER TABLE "session" ENABLE ROW LEVEL SECURITY;--> statement-breakpoint
|
|
CREATE TABLE IF NOT EXISTS "verification" (
|
|
"id" bigserial PRIMARY KEY NOT NULL,
|
|
"identifier" text NOT NULL,
|
|
"value" text NOT NULL,
|
|
"expiresAt" timestamp NOT NULL,
|
|
"createdAt" timestamp,
|
|
"updatedAt" timestamp
|
|
);
|
|
--> statement-breakpoint
|
|
ALTER TABLE "verification" ENABLE ROW LEVEL SECURITY;--> statement-breakpoint
|
|
ALTER TABLE "user" ALTER COLUMN "id" SET DEFAULT uuid_generate_v4();--> statement-breakpoint
|
|
ALTER TABLE "user" ALTER COLUMN "emailVerified" SET DATA TYPE boolean;--> statement-breakpoint
|
|
ALTER TABLE "user" ALTER COLUMN "emailVerified" SET NOT NULL;--> statement-breakpoint
|
|
ALTER TABLE "user" ADD COLUMN "createdAt" timestamp DEFAULT now() NOT NULL;--> statement-breakpoint
|
|
ALTER TABLE "user" ADD COLUMN "updatedAt" timestamp DEFAULT now() NOT NULL;--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
ALTER TABLE "account" ADD CONSTRAINT "account_userId_user_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
ALTER TABLE "apikey" ADD CONSTRAINT "apikey_userId_user_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|
|
--> statement-breakpoint
|
|
DO $$ BEGIN
|
|
ALTER TABLE "session" ADD CONSTRAINT "session_userId_user_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;
|
|
EXCEPTION
|
|
WHEN duplicate_object THEN null;
|
|
END $$;
|