@lobehub/chat 0.162.25 → 0.163.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/release.yml +21 -2
- package/.github/workflows/sync.yml +1 -1
- package/.github/workflows/test.yml +35 -4
- package/CHANGELOG.md +25 -0
- package/LICENSE +38 -21
- package/codecov.yml +11 -0
- package/drizzle.config.ts +29 -0
- package/next.config.mjs +3 -0
- package/package.json +24 -4
- package/scripts/migrateServerDB/index.ts +30 -0
- package/src/app/(main)/(mobile)/me/(home)/features/useCategory.tsx +2 -1
- package/src/app/(main)/chat/@session/features/SessionListContent/List/Item/Actions.tsx +95 -88
- package/src/app/(main)/chat/settings/features/HeaderContent.tsx +37 -31
- package/src/app/api/webhooks/clerk/__tests__/fixtures/createUser.json +73 -0
- package/src/app/api/webhooks/clerk/route.ts +159 -0
- package/src/app/api/webhooks/clerk/validateRequest.ts +22 -0
- package/src/app/trpc/edge/[trpc]/route.ts +1 -1
- package/src/app/trpc/lambda/[trpc]/route.ts +26 -0
- package/src/config/auth.ts +2 -0
- package/src/config/db.ts +13 -1
- package/src/database/server/core/db.ts +44 -0
- package/src/database/server/core/dbForTest.ts +45 -0
- package/src/database/server/index.ts +1 -0
- package/src/database/server/migrations/0000_init.sql +439 -0
- package/src/database/server/migrations/0001_add_client_id.sql +9 -0
- package/src/database/server/migrations/0002_amusing_puma.sql +9 -0
- package/src/database/server/migrations/meta/0000_snapshot.json +1583 -0
- package/src/database/server/migrations/meta/0001_snapshot.json +1636 -0
- package/src/database/server/migrations/meta/0002_snapshot.json +1630 -0
- package/src/database/server/migrations/meta/_journal.json +27 -0
- package/src/database/server/models/__tests__/file.test.ts +140 -0
- package/src/database/server/models/__tests__/message.test.ts +847 -0
- package/src/database/server/models/__tests__/plugin.test.ts +172 -0
- package/src/database/server/models/__tests__/session.test.ts +595 -0
- package/src/database/server/models/__tests__/topic.test.ts +623 -0
- package/src/database/server/models/__tests__/user.test.ts +173 -0
- package/src/database/server/models/_template.ts +44 -0
- package/src/database/server/models/file.ts +51 -0
- package/src/database/server/models/message.ts +378 -0
- package/src/database/server/models/plugin.ts +63 -0
- package/src/database/server/models/session.ts +290 -0
- package/src/database/server/models/sessionGroup.ts +69 -0
- package/src/database/server/models/topic.ts +265 -0
- package/src/database/server/models/user.ts +138 -0
- package/src/database/server/modules/DataImporter/__tests__/fixtures/messages.json +1101 -0
- package/src/database/server/modules/DataImporter/__tests__/index.test.ts +954 -0
- package/src/database/server/modules/DataImporter/index.ts +333 -0
- package/src/database/server/schemas/_id.ts +15 -0
- package/src/database/server/schemas/lobechat.ts +601 -0
- package/src/database/server/utils/idGenerator.test.ts +39 -0
- package/src/database/server/utils/idGenerator.ts +26 -0
- package/src/features/User/UserPanel/useMenu.tsx +43 -37
- package/src/libs/trpc/client.ts +52 -3
- package/src/server/files/s3.ts +21 -1
- package/src/server/keyVaultsEncrypt/index.test.ts +62 -0
- package/src/server/keyVaultsEncrypt/index.ts +93 -0
- package/src/server/mock.ts +1 -1
- package/src/server/routers/{index.ts → edge/index.ts} +3 -3
- package/src/server/routers/lambda/file.ts +49 -0
- package/src/server/routers/lambda/importer.ts +54 -0
- package/src/server/routers/lambda/index.ts +28 -0
- package/src/server/routers/lambda/message.ts +165 -0
- package/src/server/routers/lambda/plugin.ts +100 -0
- package/src/server/routers/lambda/session.ts +194 -0
- package/src/server/routers/lambda/sessionGroup.ts +77 -0
- package/src/server/routers/lambda/topic.ts +134 -0
- package/src/server/routers/lambda/user.ts +57 -0
- package/src/services/file/index.ts +4 -7
- package/src/services/file/server.ts +45 -0
- package/src/services/import/index.ts +4 -1
- package/src/services/import/server.ts +115 -0
- package/src/services/message/index.ts +4 -8
- package/src/services/message/server.ts +93 -0
- package/src/services/plugin/index.ts +4 -9
- package/src/services/plugin/server.ts +46 -0
- package/src/services/session/index.ts +4 -8
- package/src/services/session/server.ts +148 -0
- package/src/services/topic/index.ts +4 -9
- package/src/services/topic/server.ts +68 -0
- package/src/services/user/index.ts +4 -9
- package/src/services/user/server.ts +28 -0
- package/tests/setup-db.ts +7 -0
- package/vitest.config.ts +2 -1
- package/vitest.server.config.ts +23 -0
|
@@ -0,0 +1,439 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS "agents" (
|
|
2
|
+
"id" text PRIMARY KEY NOT NULL,
|
|
3
|
+
"slug" varchar(100),
|
|
4
|
+
"title" text,
|
|
5
|
+
"description" text,
|
|
6
|
+
"tags" jsonb DEFAULT '[]'::jsonb,
|
|
7
|
+
"avatar" text,
|
|
8
|
+
"background_color" text,
|
|
9
|
+
"plugins" jsonb DEFAULT '[]'::jsonb,
|
|
10
|
+
"user_id" text NOT NULL,
|
|
11
|
+
"chat_config" jsonb,
|
|
12
|
+
"few_shots" jsonb,
|
|
13
|
+
"model" text,
|
|
14
|
+
"params" jsonb DEFAULT '{}'::jsonb,
|
|
15
|
+
"provider" text,
|
|
16
|
+
"system_role" text,
|
|
17
|
+
"tts" jsonb,
|
|
18
|
+
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
19
|
+
"updated_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
20
|
+
CONSTRAINT "agents_slug_unique" UNIQUE("slug")
|
|
21
|
+
);
|
|
22
|
+
--> statement-breakpoint
|
|
23
|
+
CREATE TABLE IF NOT EXISTS "agents_tags" (
|
|
24
|
+
"agent_id" text NOT NULL,
|
|
25
|
+
"tag_id" integer NOT NULL,
|
|
26
|
+
CONSTRAINT "agents_tags_agent_id_tag_id_pk" PRIMARY KEY("agent_id","tag_id")
|
|
27
|
+
);
|
|
28
|
+
--> statement-breakpoint
|
|
29
|
+
CREATE TABLE IF NOT EXISTS "agents_to_sessions" (
|
|
30
|
+
"agent_id" text NOT NULL,
|
|
31
|
+
"session_id" text NOT NULL,
|
|
32
|
+
CONSTRAINT "agents_to_sessions_agent_id_session_id_pk" PRIMARY KEY("agent_id","session_id")
|
|
33
|
+
);
|
|
34
|
+
--> statement-breakpoint
|
|
35
|
+
CREATE TABLE IF NOT EXISTS "files" (
|
|
36
|
+
"id" text PRIMARY KEY NOT NULL,
|
|
37
|
+
"user_id" text NOT NULL,
|
|
38
|
+
"file_type" varchar(255) NOT NULL,
|
|
39
|
+
"name" text NOT NULL,
|
|
40
|
+
"size" integer NOT NULL,
|
|
41
|
+
"url" text NOT NULL,
|
|
42
|
+
"metadata" jsonb,
|
|
43
|
+
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
44
|
+
"updated_at" timestamp with time zone DEFAULT now() NOT NULL
|
|
45
|
+
);
|
|
46
|
+
--> statement-breakpoint
|
|
47
|
+
CREATE TABLE IF NOT EXISTS "files_to_agents" (
|
|
48
|
+
"file_id" text NOT NULL,
|
|
49
|
+
"agent_id" text NOT NULL,
|
|
50
|
+
CONSTRAINT "files_to_agents_file_id_agent_id_pk" PRIMARY KEY("file_id","agent_id")
|
|
51
|
+
);
|
|
52
|
+
--> statement-breakpoint
|
|
53
|
+
CREATE TABLE IF NOT EXISTS "files_to_messages" (
|
|
54
|
+
"file_id" text NOT NULL,
|
|
55
|
+
"message_id" text NOT NULL,
|
|
56
|
+
CONSTRAINT "files_to_messages_file_id_message_id_pk" PRIMARY KEY("file_id","message_id")
|
|
57
|
+
);
|
|
58
|
+
--> statement-breakpoint
|
|
59
|
+
CREATE TABLE IF NOT EXISTS "files_to_sessions" (
|
|
60
|
+
"file_id" text NOT NULL,
|
|
61
|
+
"session_id" text NOT NULL,
|
|
62
|
+
CONSTRAINT "files_to_sessions_file_id_session_id_pk" PRIMARY KEY("file_id","session_id")
|
|
63
|
+
);
|
|
64
|
+
--> statement-breakpoint
|
|
65
|
+
CREATE TABLE IF NOT EXISTS "user_installed_plugins" (
|
|
66
|
+
"user_id" text NOT NULL,
|
|
67
|
+
"identifier" text NOT NULL,
|
|
68
|
+
"type" text NOT NULL,
|
|
69
|
+
"manifest" jsonb,
|
|
70
|
+
"settings" jsonb,
|
|
71
|
+
"custom_params" jsonb,
|
|
72
|
+
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
73
|
+
"updated_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
74
|
+
CONSTRAINT "user_installed_plugins_user_id_identifier_pk" PRIMARY KEY("user_id","identifier")
|
|
75
|
+
);
|
|
76
|
+
--> statement-breakpoint
|
|
77
|
+
CREATE TABLE IF NOT EXISTS "market" (
|
|
78
|
+
"id" serial PRIMARY KEY NOT NULL,
|
|
79
|
+
"agent_id" text,
|
|
80
|
+
"plugin_id" integer,
|
|
81
|
+
"type" text NOT NULL,
|
|
82
|
+
"view" integer DEFAULT 0,
|
|
83
|
+
"like" integer DEFAULT 0,
|
|
84
|
+
"used" integer DEFAULT 0,
|
|
85
|
+
"user_id" text NOT NULL,
|
|
86
|
+
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
87
|
+
"updated_at" timestamp with time zone DEFAULT now() NOT NULL
|
|
88
|
+
);
|
|
89
|
+
--> statement-breakpoint
|
|
90
|
+
CREATE TABLE IF NOT EXISTS "message_plugins" (
|
|
91
|
+
"id" text PRIMARY KEY NOT NULL,
|
|
92
|
+
"tool_call_id" text,
|
|
93
|
+
"type" text DEFAULT 'default',
|
|
94
|
+
"api_name" text,
|
|
95
|
+
"arguments" text,
|
|
96
|
+
"identifier" text,
|
|
97
|
+
"state" jsonb,
|
|
98
|
+
"error" jsonb
|
|
99
|
+
);
|
|
100
|
+
--> statement-breakpoint
|
|
101
|
+
CREATE TABLE IF NOT EXISTS "message_tts" (
|
|
102
|
+
"id" text PRIMARY KEY NOT NULL,
|
|
103
|
+
"content_md5" text,
|
|
104
|
+
"file_id" text,
|
|
105
|
+
"voice" text
|
|
106
|
+
);
|
|
107
|
+
--> statement-breakpoint
|
|
108
|
+
CREATE TABLE IF NOT EXISTS "message_translates" (
|
|
109
|
+
"id" text PRIMARY KEY NOT NULL,
|
|
110
|
+
"content" text,
|
|
111
|
+
"from" text,
|
|
112
|
+
"to" text
|
|
113
|
+
);
|
|
114
|
+
--> statement-breakpoint
|
|
115
|
+
CREATE TABLE IF NOT EXISTS "messages" (
|
|
116
|
+
"id" text PRIMARY KEY NOT NULL,
|
|
117
|
+
"role" text NOT NULL,
|
|
118
|
+
"content" text,
|
|
119
|
+
"model" text,
|
|
120
|
+
"provider" text,
|
|
121
|
+
"favorite" boolean DEFAULT false,
|
|
122
|
+
"error" jsonb,
|
|
123
|
+
"tools" jsonb,
|
|
124
|
+
"trace_id" text,
|
|
125
|
+
"observation_id" text,
|
|
126
|
+
"user_id" text NOT NULL,
|
|
127
|
+
"session_id" text,
|
|
128
|
+
"topic_id" text,
|
|
129
|
+
"parent_id" text,
|
|
130
|
+
"quota_id" text,
|
|
131
|
+
"agent_id" text,
|
|
132
|
+
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
133
|
+
"updated_at" timestamp with time zone DEFAULT now() NOT NULL
|
|
134
|
+
);
|
|
135
|
+
--> statement-breakpoint
|
|
136
|
+
CREATE TABLE IF NOT EXISTS "plugins" (
|
|
137
|
+
"id" serial PRIMARY KEY NOT NULL,
|
|
138
|
+
"identifier" text NOT NULL,
|
|
139
|
+
"title" text NOT NULL,
|
|
140
|
+
"description" text,
|
|
141
|
+
"avatar" text,
|
|
142
|
+
"author" text,
|
|
143
|
+
"manifest" text NOT NULL,
|
|
144
|
+
"locale" text NOT NULL,
|
|
145
|
+
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
146
|
+
"updated_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
147
|
+
CONSTRAINT "plugins_identifier_unique" UNIQUE("identifier")
|
|
148
|
+
);
|
|
149
|
+
--> statement-breakpoint
|
|
150
|
+
CREATE TABLE IF NOT EXISTS "plugins_tags" (
|
|
151
|
+
"plugin_id" integer NOT NULL,
|
|
152
|
+
"tag_id" integer NOT NULL,
|
|
153
|
+
CONSTRAINT "plugins_tags_plugin_id_tag_id_pk" PRIMARY KEY("plugin_id","tag_id")
|
|
154
|
+
);
|
|
155
|
+
--> statement-breakpoint
|
|
156
|
+
CREATE TABLE IF NOT EXISTS "session_groups" (
|
|
157
|
+
"id" text PRIMARY KEY NOT NULL,
|
|
158
|
+
"name" text NOT NULL,
|
|
159
|
+
"sort" integer,
|
|
160
|
+
"user_id" text NOT NULL,
|
|
161
|
+
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
162
|
+
"updated_at" timestamp with time zone DEFAULT now() NOT NULL
|
|
163
|
+
);
|
|
164
|
+
--> statement-breakpoint
|
|
165
|
+
CREATE TABLE IF NOT EXISTS "sessions" (
|
|
166
|
+
"id" text PRIMARY KEY NOT NULL,
|
|
167
|
+
"slug" varchar(100) NOT NULL,
|
|
168
|
+
"title" text,
|
|
169
|
+
"description" text,
|
|
170
|
+
"avatar" text,
|
|
171
|
+
"background_color" text,
|
|
172
|
+
"type" text DEFAULT 'agent',
|
|
173
|
+
"user_id" text NOT NULL,
|
|
174
|
+
"group_id" text,
|
|
175
|
+
"pinned" boolean DEFAULT false,
|
|
176
|
+
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
177
|
+
"updated_at" timestamp with time zone DEFAULT now() NOT NULL
|
|
178
|
+
);
|
|
179
|
+
--> statement-breakpoint
|
|
180
|
+
CREATE TABLE IF NOT EXISTS "tags" (
|
|
181
|
+
"id" serial PRIMARY KEY NOT NULL,
|
|
182
|
+
"slug" text NOT NULL,
|
|
183
|
+
"name" text,
|
|
184
|
+
"user_id" text NOT NULL,
|
|
185
|
+
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
186
|
+
"updated_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
187
|
+
CONSTRAINT "tags_slug_unique" UNIQUE("slug")
|
|
188
|
+
);
|
|
189
|
+
--> statement-breakpoint
|
|
190
|
+
CREATE TABLE IF NOT EXISTS "topics" (
|
|
191
|
+
"id" text PRIMARY KEY NOT NULL,
|
|
192
|
+
"session_id" text,
|
|
193
|
+
"user_id" text NOT NULL,
|
|
194
|
+
"favorite" boolean DEFAULT false,
|
|
195
|
+
"title" text,
|
|
196
|
+
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
197
|
+
"updated_at" timestamp with time zone DEFAULT now() NOT NULL
|
|
198
|
+
);
|
|
199
|
+
--> statement-breakpoint
|
|
200
|
+
CREATE TABLE IF NOT EXISTS "user_settings" (
|
|
201
|
+
"id" text PRIMARY KEY NOT NULL,
|
|
202
|
+
"tts" jsonb,
|
|
203
|
+
"key_vaults" text,
|
|
204
|
+
"general" jsonb,
|
|
205
|
+
"language_model" jsonb,
|
|
206
|
+
"system_agent" jsonb,
|
|
207
|
+
"default_agent" jsonb,
|
|
208
|
+
"tool" jsonb
|
|
209
|
+
);
|
|
210
|
+
--> statement-breakpoint
|
|
211
|
+
CREATE TABLE IF NOT EXISTS "users" (
|
|
212
|
+
"id" text PRIMARY KEY NOT NULL,
|
|
213
|
+
"username" text,
|
|
214
|
+
"email" text,
|
|
215
|
+
"avatar" text,
|
|
216
|
+
"phone" text,
|
|
217
|
+
"first_name" text,
|
|
218
|
+
"last_name" text,
|
|
219
|
+
"is_onboarded" boolean DEFAULT false,
|
|
220
|
+
"clerk_created_at" timestamp with time zone,
|
|
221
|
+
"preference" jsonb DEFAULT '{"guide":{"moveSettingsToAvatar":true,"topic":true},"telemetry":null,"useCmdEnterToSend":false}'::jsonb,
|
|
222
|
+
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
223
|
+
"updated_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
224
|
+
"key" text,
|
|
225
|
+
CONSTRAINT "users_username_unique" UNIQUE("username")
|
|
226
|
+
);
|
|
227
|
+
--> statement-breakpoint
|
|
228
|
+
DO $$ BEGIN
|
|
229
|
+
ALTER TABLE "agents" ADD CONSTRAINT "agents_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
|
230
|
+
EXCEPTION
|
|
231
|
+
WHEN duplicate_object THEN null;
|
|
232
|
+
END $$;
|
|
233
|
+
--> statement-breakpoint
|
|
234
|
+
DO $$ BEGIN
|
|
235
|
+
ALTER TABLE "agents_tags" ADD CONSTRAINT "agents_tags_agent_id_agents_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;
|
|
236
|
+
EXCEPTION
|
|
237
|
+
WHEN duplicate_object THEN null;
|
|
238
|
+
END $$;
|
|
239
|
+
--> statement-breakpoint
|
|
240
|
+
DO $$ BEGIN
|
|
241
|
+
ALTER TABLE "agents_tags" ADD CONSTRAINT "agents_tags_tag_id_tags_id_fk" FOREIGN KEY ("tag_id") REFERENCES "public"."tags"("id") ON DELETE cascade ON UPDATE no action;
|
|
242
|
+
EXCEPTION
|
|
243
|
+
WHEN duplicate_object THEN null;
|
|
244
|
+
END $$;
|
|
245
|
+
--> statement-breakpoint
|
|
246
|
+
DO $$ BEGIN
|
|
247
|
+
ALTER TABLE "agents_to_sessions" ADD CONSTRAINT "agents_to_sessions_agent_id_agents_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;
|
|
248
|
+
EXCEPTION
|
|
249
|
+
WHEN duplicate_object THEN null;
|
|
250
|
+
END $$;
|
|
251
|
+
--> statement-breakpoint
|
|
252
|
+
DO $$ BEGIN
|
|
253
|
+
ALTER TABLE "agents_to_sessions" ADD CONSTRAINT "agents_to_sessions_session_id_sessions_id_fk" FOREIGN KEY ("session_id") REFERENCES "public"."sessions"("id") ON DELETE cascade ON UPDATE no action;
|
|
254
|
+
EXCEPTION
|
|
255
|
+
WHEN duplicate_object THEN null;
|
|
256
|
+
END $$;
|
|
257
|
+
--> statement-breakpoint
|
|
258
|
+
DO $$ BEGIN
|
|
259
|
+
ALTER TABLE "files" ADD CONSTRAINT "files_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
|
260
|
+
EXCEPTION
|
|
261
|
+
WHEN duplicate_object THEN null;
|
|
262
|
+
END $$;
|
|
263
|
+
--> statement-breakpoint
|
|
264
|
+
DO $$ BEGIN
|
|
265
|
+
ALTER TABLE "files_to_agents" ADD CONSTRAINT "files_to_agents_file_id_files_id_fk" FOREIGN KEY ("file_id") REFERENCES "public"."files"("id") ON DELETE cascade ON UPDATE no action;
|
|
266
|
+
EXCEPTION
|
|
267
|
+
WHEN duplicate_object THEN null;
|
|
268
|
+
END $$;
|
|
269
|
+
--> statement-breakpoint
|
|
270
|
+
DO $$ BEGIN
|
|
271
|
+
ALTER TABLE "files_to_agents" ADD CONSTRAINT "files_to_agents_agent_id_agents_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;
|
|
272
|
+
EXCEPTION
|
|
273
|
+
WHEN duplicate_object THEN null;
|
|
274
|
+
END $$;
|
|
275
|
+
--> statement-breakpoint
|
|
276
|
+
DO $$ BEGIN
|
|
277
|
+
ALTER TABLE "files_to_messages" ADD CONSTRAINT "files_to_messages_file_id_files_id_fk" FOREIGN KEY ("file_id") REFERENCES "public"."files"("id") ON DELETE cascade ON UPDATE no action;
|
|
278
|
+
EXCEPTION
|
|
279
|
+
WHEN duplicate_object THEN null;
|
|
280
|
+
END $$;
|
|
281
|
+
--> statement-breakpoint
|
|
282
|
+
DO $$ BEGIN
|
|
283
|
+
ALTER TABLE "files_to_messages" ADD CONSTRAINT "files_to_messages_message_id_messages_id_fk" FOREIGN KEY ("message_id") REFERENCES "public"."messages"("id") ON DELETE cascade ON UPDATE no action;
|
|
284
|
+
EXCEPTION
|
|
285
|
+
WHEN duplicate_object THEN null;
|
|
286
|
+
END $$;
|
|
287
|
+
--> statement-breakpoint
|
|
288
|
+
DO $$ BEGIN
|
|
289
|
+
ALTER TABLE "files_to_sessions" ADD CONSTRAINT "files_to_sessions_file_id_files_id_fk" FOREIGN KEY ("file_id") REFERENCES "public"."files"("id") ON DELETE cascade ON UPDATE no action;
|
|
290
|
+
EXCEPTION
|
|
291
|
+
WHEN duplicate_object THEN null;
|
|
292
|
+
END $$;
|
|
293
|
+
--> statement-breakpoint
|
|
294
|
+
DO $$ BEGIN
|
|
295
|
+
ALTER TABLE "files_to_sessions" ADD CONSTRAINT "files_to_sessions_session_id_sessions_id_fk" FOREIGN KEY ("session_id") REFERENCES "public"."sessions"("id") ON DELETE cascade ON UPDATE no action;
|
|
296
|
+
EXCEPTION
|
|
297
|
+
WHEN duplicate_object THEN null;
|
|
298
|
+
END $$;
|
|
299
|
+
--> statement-breakpoint
|
|
300
|
+
DO $$ BEGIN
|
|
301
|
+
ALTER TABLE "user_installed_plugins" ADD CONSTRAINT "user_installed_plugins_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
|
302
|
+
EXCEPTION
|
|
303
|
+
WHEN duplicate_object THEN null;
|
|
304
|
+
END $$;
|
|
305
|
+
--> statement-breakpoint
|
|
306
|
+
DO $$ BEGIN
|
|
307
|
+
ALTER TABLE "market" ADD CONSTRAINT "market_agent_id_agents_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;
|
|
308
|
+
EXCEPTION
|
|
309
|
+
WHEN duplicate_object THEN null;
|
|
310
|
+
END $$;
|
|
311
|
+
--> statement-breakpoint
|
|
312
|
+
DO $$ BEGIN
|
|
313
|
+
ALTER TABLE "market" ADD CONSTRAINT "market_plugin_id_plugins_id_fk" FOREIGN KEY ("plugin_id") REFERENCES "public"."plugins"("id") ON DELETE cascade ON UPDATE no action;
|
|
314
|
+
EXCEPTION
|
|
315
|
+
WHEN duplicate_object THEN null;
|
|
316
|
+
END $$;
|
|
317
|
+
--> statement-breakpoint
|
|
318
|
+
DO $$ BEGIN
|
|
319
|
+
ALTER TABLE "market" ADD CONSTRAINT "market_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
|
320
|
+
EXCEPTION
|
|
321
|
+
WHEN duplicate_object THEN null;
|
|
322
|
+
END $$;
|
|
323
|
+
--> statement-breakpoint
|
|
324
|
+
DO $$ BEGIN
|
|
325
|
+
ALTER TABLE "message_plugins" ADD CONSTRAINT "message_plugins_id_messages_id_fk" FOREIGN KEY ("id") REFERENCES "public"."messages"("id") ON DELETE cascade ON UPDATE no action;
|
|
326
|
+
EXCEPTION
|
|
327
|
+
WHEN duplicate_object THEN null;
|
|
328
|
+
END $$;
|
|
329
|
+
--> statement-breakpoint
|
|
330
|
+
DO $$ BEGIN
|
|
331
|
+
ALTER TABLE "message_tts" ADD CONSTRAINT "message_tts_id_messages_id_fk" FOREIGN KEY ("id") REFERENCES "public"."messages"("id") ON DELETE cascade ON UPDATE no action;
|
|
332
|
+
EXCEPTION
|
|
333
|
+
WHEN duplicate_object THEN null;
|
|
334
|
+
END $$;
|
|
335
|
+
--> statement-breakpoint
|
|
336
|
+
DO $$ BEGIN
|
|
337
|
+
ALTER TABLE "message_tts" ADD CONSTRAINT "message_tts_file_id_files_id_fk" FOREIGN KEY ("file_id") REFERENCES "public"."files"("id") ON DELETE cascade ON UPDATE no action;
|
|
338
|
+
EXCEPTION
|
|
339
|
+
WHEN duplicate_object THEN null;
|
|
340
|
+
END $$;
|
|
341
|
+
--> statement-breakpoint
|
|
342
|
+
DO $$ BEGIN
|
|
343
|
+
ALTER TABLE "message_translates" ADD CONSTRAINT "message_translates_id_messages_id_fk" FOREIGN KEY ("id") REFERENCES "public"."messages"("id") ON DELETE cascade ON UPDATE no action;
|
|
344
|
+
EXCEPTION
|
|
345
|
+
WHEN duplicate_object THEN null;
|
|
346
|
+
END $$;
|
|
347
|
+
--> statement-breakpoint
|
|
348
|
+
DO $$ BEGIN
|
|
349
|
+
ALTER TABLE "messages" ADD CONSTRAINT "messages_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
|
350
|
+
EXCEPTION
|
|
351
|
+
WHEN duplicate_object THEN null;
|
|
352
|
+
END $$;
|
|
353
|
+
--> statement-breakpoint
|
|
354
|
+
DO $$ BEGIN
|
|
355
|
+
ALTER TABLE "messages" ADD CONSTRAINT "messages_session_id_sessions_id_fk" FOREIGN KEY ("session_id") REFERENCES "public"."sessions"("id") ON DELETE cascade ON UPDATE no action;
|
|
356
|
+
EXCEPTION
|
|
357
|
+
WHEN duplicate_object THEN null;
|
|
358
|
+
END $$;
|
|
359
|
+
--> statement-breakpoint
|
|
360
|
+
DO $$ BEGIN
|
|
361
|
+
ALTER TABLE "messages" ADD CONSTRAINT "messages_topic_id_topics_id_fk" FOREIGN KEY ("topic_id") REFERENCES "public"."topics"("id") ON DELETE cascade ON UPDATE no action;
|
|
362
|
+
EXCEPTION
|
|
363
|
+
WHEN duplicate_object THEN null;
|
|
364
|
+
END $$;
|
|
365
|
+
--> statement-breakpoint
|
|
366
|
+
DO $$ BEGIN
|
|
367
|
+
ALTER TABLE "messages" ADD CONSTRAINT "messages_parent_id_messages_id_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."messages"("id") ON DELETE set null ON UPDATE no action;
|
|
368
|
+
EXCEPTION
|
|
369
|
+
WHEN duplicate_object THEN null;
|
|
370
|
+
END $$;
|
|
371
|
+
--> statement-breakpoint
|
|
372
|
+
DO $$ BEGIN
|
|
373
|
+
ALTER TABLE "messages" ADD CONSTRAINT "messages_quota_id_messages_id_fk" FOREIGN KEY ("quota_id") REFERENCES "public"."messages"("id") ON DELETE set null ON UPDATE no action;
|
|
374
|
+
EXCEPTION
|
|
375
|
+
WHEN duplicate_object THEN null;
|
|
376
|
+
END $$;
|
|
377
|
+
--> statement-breakpoint
|
|
378
|
+
DO $$ BEGIN
|
|
379
|
+
ALTER TABLE "messages" ADD CONSTRAINT "messages_agent_id_agents_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE set null ON UPDATE no action;
|
|
380
|
+
EXCEPTION
|
|
381
|
+
WHEN duplicate_object THEN null;
|
|
382
|
+
END $$;
|
|
383
|
+
--> statement-breakpoint
|
|
384
|
+
DO $$ BEGIN
|
|
385
|
+
ALTER TABLE "plugins_tags" ADD CONSTRAINT "plugins_tags_plugin_id_plugins_id_fk" FOREIGN KEY ("plugin_id") REFERENCES "public"."plugins"("id") ON DELETE cascade ON UPDATE no action;
|
|
386
|
+
EXCEPTION
|
|
387
|
+
WHEN duplicate_object THEN null;
|
|
388
|
+
END $$;
|
|
389
|
+
--> statement-breakpoint
|
|
390
|
+
DO $$ BEGIN
|
|
391
|
+
ALTER TABLE "plugins_tags" ADD CONSTRAINT "plugins_tags_tag_id_tags_id_fk" FOREIGN KEY ("tag_id") REFERENCES "public"."tags"("id") ON DELETE cascade ON UPDATE no action;
|
|
392
|
+
EXCEPTION
|
|
393
|
+
WHEN duplicate_object THEN null;
|
|
394
|
+
END $$;
|
|
395
|
+
--> statement-breakpoint
|
|
396
|
+
DO $$ BEGIN
|
|
397
|
+
ALTER TABLE "session_groups" ADD CONSTRAINT "session_groups_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
|
398
|
+
EXCEPTION
|
|
399
|
+
WHEN duplicate_object THEN null;
|
|
400
|
+
END $$;
|
|
401
|
+
--> statement-breakpoint
|
|
402
|
+
DO $$ BEGIN
|
|
403
|
+
ALTER TABLE "sessions" ADD CONSTRAINT "sessions_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
|
404
|
+
EXCEPTION
|
|
405
|
+
WHEN duplicate_object THEN null;
|
|
406
|
+
END $$;
|
|
407
|
+
--> statement-breakpoint
|
|
408
|
+
DO $$ BEGIN
|
|
409
|
+
ALTER TABLE "sessions" ADD CONSTRAINT "sessions_group_id_session_groups_id_fk" FOREIGN KEY ("group_id") REFERENCES "public"."session_groups"("id") ON DELETE set null ON UPDATE no action;
|
|
410
|
+
EXCEPTION
|
|
411
|
+
WHEN duplicate_object THEN null;
|
|
412
|
+
END $$;
|
|
413
|
+
--> statement-breakpoint
|
|
414
|
+
DO $$ BEGIN
|
|
415
|
+
ALTER TABLE "tags" ADD CONSTRAINT "tags_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
|
416
|
+
EXCEPTION
|
|
417
|
+
WHEN duplicate_object THEN null;
|
|
418
|
+
END $$;
|
|
419
|
+
--> statement-breakpoint
|
|
420
|
+
DO $$ BEGIN
|
|
421
|
+
ALTER TABLE "topics" ADD CONSTRAINT "topics_session_id_sessions_id_fk" FOREIGN KEY ("session_id") REFERENCES "public"."sessions"("id") ON DELETE cascade ON UPDATE no action;
|
|
422
|
+
EXCEPTION
|
|
423
|
+
WHEN duplicate_object THEN null;
|
|
424
|
+
END $$;
|
|
425
|
+
--> statement-breakpoint
|
|
426
|
+
DO $$ BEGIN
|
|
427
|
+
ALTER TABLE "topics" ADD CONSTRAINT "topics_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
|
428
|
+
EXCEPTION
|
|
429
|
+
WHEN duplicate_object THEN null;
|
|
430
|
+
END $$;
|
|
431
|
+
--> statement-breakpoint
|
|
432
|
+
DO $$ BEGIN
|
|
433
|
+
ALTER TABLE "user_settings" ADD CONSTRAINT "user_settings_id_users_id_fk" FOREIGN KEY ("id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
|
434
|
+
EXCEPTION
|
|
435
|
+
WHEN duplicate_object THEN null;
|
|
436
|
+
END $$;
|
|
437
|
+
--> statement-breakpoint
|
|
438
|
+
CREATE INDEX IF NOT EXISTS "messages_created_at_idx" ON "messages" ("created_at");--> statement-breakpoint
|
|
439
|
+
CREATE UNIQUE INDEX IF NOT EXISTS "slug_user_id_unique" ON "sessions" ("slug","user_id");
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
ALTER TABLE "messages" ADD COLUMN "client_id" text;--> statement-breakpoint
|
|
2
|
+
ALTER TABLE "session_groups" ADD COLUMN "client_id" text;--> statement-breakpoint
|
|
3
|
+
ALTER TABLE "sessions" ADD COLUMN "client_id" text;--> statement-breakpoint
|
|
4
|
+
ALTER TABLE "topics" ADD COLUMN "client_id" text;--> statement-breakpoint
|
|
5
|
+
CREATE INDEX IF NOT EXISTS "messages_client_id_idx" ON "messages" ("client_id");--> statement-breakpoint
|
|
6
|
+
ALTER TABLE "messages" ADD CONSTRAINT "messages_client_id_unique" UNIQUE("client_id");--> statement-breakpoint
|
|
7
|
+
ALTER TABLE "session_groups" ADD CONSTRAINT "session_groups_client_id_unique" UNIQUE("client_id");--> statement-breakpoint
|
|
8
|
+
ALTER TABLE "sessions" ADD CONSTRAINT "sessions_client_id_unique" UNIQUE("client_id");--> statement-breakpoint
|
|
9
|
+
ALTER TABLE "topics" ADD CONSTRAINT "topics_client_id_unique" UNIQUE("client_id");
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
ALTER TABLE "messages" DROP CONSTRAINT "messages_client_id_unique";--> statement-breakpoint
|
|
2
|
+
ALTER TABLE "session_groups" DROP CONSTRAINT "session_groups_client_id_unique";--> statement-breakpoint
|
|
3
|
+
ALTER TABLE "sessions" DROP CONSTRAINT "sessions_client_id_unique";--> statement-breakpoint
|
|
4
|
+
ALTER TABLE "topics" DROP CONSTRAINT "topics_client_id_unique";--> statement-breakpoint
|
|
5
|
+
DROP INDEX IF EXISTS "messages_client_id_idx";--> statement-breakpoint
|
|
6
|
+
CREATE UNIQUE INDEX IF NOT EXISTS "message_client_id_user_unique" ON "messages" ("client_id","user_id");--> statement-breakpoint
|
|
7
|
+
ALTER TABLE "session_groups" ADD CONSTRAINT "session_group_client_id_user_unique" UNIQUE("client_id","user_id");--> statement-breakpoint
|
|
8
|
+
ALTER TABLE "sessions" ADD CONSTRAINT "sessions_client_id_user_id_unique" UNIQUE("client_id","user_id");--> statement-breakpoint
|
|
9
|
+
ALTER TABLE "topics" ADD CONSTRAINT "topic_client_id_user_id_unique" UNIQUE("client_id","user_id");
|