mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-07-08 08:27:39 +08:00
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com> Signed-off-by: eeee0717 <chentao020717Work@outlook.com>
39 lines
2.5 KiB
SQL
39 lines
2.5 KiB
SQL
PRAGMA foreign_keys=OFF;--> statement-breakpoint
|
|
CREATE TABLE `__new_knowledge_item` (
|
|
`id` text PRIMARY KEY NOT NULL,
|
|
`base_id` text NOT NULL,
|
|
`group_id` text,
|
|
`type` text NOT NULL,
|
|
`data` text NOT NULL,
|
|
`status` text NOT NULL,
|
|
`error` text,
|
|
`created_at` integer NOT NULL,
|
|
`updated_at` integer NOT NULL,
|
|
FOREIGN KEY (`base_id`) REFERENCES `knowledge_base`(`id`) ON UPDATE no action ON DELETE cascade,
|
|
FOREIGN KEY (`base_id`,`group_id`) REFERENCES `knowledge_item`(`base_id`,`id`) ON UPDATE no action ON DELETE cascade,
|
|
CONSTRAINT "knowledge_item_type_check" CHECK("__new_knowledge_item"."type" IN ('file', 'url', 'note', 'directory')),
|
|
CONSTRAINT "knowledge_item_status_check" CHECK("__new_knowledge_item"."status" IN ('idle', 'preparing', 'processing', 'reading', 'embedding', 'completed', 'failed', 'deleting')),
|
|
CONSTRAINT "knowledge_item_type_status_check" CHECK(
|
|
("__new_knowledge_item"."type" IN ('file', 'url', 'note') AND "__new_knowledge_item"."status" IN ('idle', 'processing', 'reading', 'embedding', 'completed', 'failed', 'deleting'))
|
|
OR ("__new_knowledge_item"."type" = 'directory' AND "__new_knowledge_item"."status" IN ('idle', 'preparing', 'processing', 'completed', 'failed', 'deleting'))
|
|
),
|
|
CONSTRAINT "knowledge_item_status_error_check" CHECK(
|
|
(
|
|
"__new_knowledge_item"."status" IN ('idle', 'preparing', 'processing', 'reading', 'embedding', 'completed', 'deleting')
|
|
AND "__new_knowledge_item"."error" IS NULL
|
|
)
|
|
OR (
|
|
"__new_knowledge_item"."status" = 'failed'
|
|
AND "__new_knowledge_item"."error" IS NOT NULL
|
|
AND length(trim("__new_knowledge_item"."error")) > 0
|
|
)
|
|
)
|
|
);
|
|
--> statement-breakpoint
|
|
INSERT INTO `__new_knowledge_item`("id", "base_id", "group_id", "type", "data", "status", "error", "created_at", "updated_at") SELECT "id", "base_id", "group_id", "type", "data", "status", "error", "created_at", "updated_at" FROM `knowledge_item`;--> statement-breakpoint
|
|
DROP TABLE `knowledge_item`;--> statement-breakpoint
|
|
ALTER TABLE `__new_knowledge_item` RENAME TO `knowledge_item`;--> statement-breakpoint
|
|
PRAGMA foreign_keys=ON;--> statement-breakpoint
|
|
CREATE INDEX `knowledge_item_base_type_created_idx` ON `knowledge_item` (`base_id`,`type`,`created_at`);--> statement-breakpoint
|
|
CREATE INDEX `knowledge_item_base_group_created_idx` ON `knowledge_item` (`base_id`,`group_id`,`created_at`);--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `knowledge_item_baseId_id_unique` ON `knowledge_item` (`base_id`,`id`); |