Repository navigation
Expand file tree
/
Copy pathmigration.sql
More file actions
97 lines (84 loc) 路 3.49 KB
/
Copy pathmigration.sql
File metadata and controls
97 lines (84 loc) 路 3.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
-- CreateTable
CREATE TABLE "user" (
"id" TEXT NOT NULL PRIMARY KEY,
"email" TEXT NOT NULL,
"email_verified" BOOLEAN NOT NULL DEFAULT false,
"password_hash" TEXT NOT NULL,
"metadata" JSONB,
"joined_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP
);
-- CreateTable
CREATE TABLE "session" (
"id" TEXT NOT NULL PRIMARY KEY,
"user_id" TEXT NOT NULL,
"expires_at" TIMESTAMP(3) NOT NULL,
"revoke_id" TEXT NOT NULL,
"active_organization_id" TEXT,
"ip_address" TEXT,
"user_agent_hash" TEXT,
CONSTRAINT "session_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "user" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT "session_active_organization_id_fkey" FOREIGN KEY ("active_organization_id") REFERENCES "organization" ("id") ON DELETE SET NULL ON UPDATE CASCADE
);
-- CreateTable
CREATE TABLE "oauth_account" (
"provider_id" TEXT NOT NULL,
"provider_user_id" TEXT NOT NULL,
"user_id" TEXT NOT NULL,
PRIMARY KEY ("provider_user_id", "user_id"),
CONSTRAINT "oauth_account_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "user" ("id") ON DELETE CASCADE ON UPDATE CASCADE
);
-- CreateTable
CREATE TABLE "onetime_token" (
"token" TEXT NOT NULL PRIMARY KEY,
"code" TEXT,
"expires_at" TIMESTAMP(3) NOT NULL,
"identifier" TEXT NOT NULL,
"purpose" TEXT NOT NULL,
"metadata" JSONB
);
-- CreateTable
CREATE TABLE "organization" (
"id" TEXT NOT NULL PRIMARY KEY,
"name" TEXT NOT NULL,
"slug" TEXT,
"logo_object_id" TEXT,
"metadata" JSONB,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP
);
-- CreateTable
CREATE TABLE "organization_member" (
"user_id" TEXT NOT NULL,
"organization_id" TEXT NOT NULL,
"role" TEXT NOT NULL DEFAULT 'member',
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY ("organization_id", "user_id"),
CONSTRAINT "organization_member_organization_id_fkey" FOREIGN KEY ("organization_id") REFERENCES "organization" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT "organization_member_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "user" ("id") ON DELETE CASCADE ON UPDATE CASCADE
);
-- CreateTable
CREATE TABLE "organization_invitation" (
"id" TEXT NOT NULL PRIMARY KEY,
"organization_id" TEXT NOT NULL,
"email" TEXT NOT NULL,
"role" TEXT NOT NULL DEFAULT 'member',
"invited_by_id" TEXT NOT NULL,
"expires_at" TIMESTAMP(3) NOT NULL,
"accepted_at" TIMESTAMP(3),
"rejected_at" TIMESTAMP(3),
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "organization_invitation_organization_id_fkey" FOREIGN KEY ("organization_id") REFERENCES "organization" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT "organization_invitation_invited_by_id_fkey" FOREIGN KEY ("invited_by_id") REFERENCES "user" ("id") ON DELETE CASCADE ON UPDATE CASCADE
);
-- CreateIndex
CREATE UNIQUE INDEX "user_email_key" ON "user"("email");
-- CreateIndex
CREATE UNIQUE INDEX "session_revoke_id_key" ON "session"("revoke_id");
-- CreateIndex
CREATE UNIQUE INDEX "onetime_token_token_key" ON "onetime_token"("token");
-- CreateIndex
CREATE UNIQUE INDEX "onetime_token_code_identifier_key" ON "onetime_token"("code", "identifier");
-- CreateIndex
CREATE UNIQUE INDEX "organization_slug_key" ON "organization"("slug");