You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

53 lines
2.6 KiB

CREATE TABLE `character_cards` (
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
`slug` text(50) NOT NULL,
`name` text(100) NOT NULL,
`avatar` text,
`description` text,
`personality` text,
`scenario` text,
`first_message` text,
`example_dialogue` text,
`system_prompt` text DEFAULT '' NOT NULL,
`default_model_id` integer,
`tags` text,
`is_public` integer DEFAULT 1 NOT NULL,
`enabled` integer DEFAULT 1 NOT NULL,
`sort_order` integer DEFAULT 0 NOT NULL,
`created_at` integer DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer)) NOT NULL,
`updated_at` integer DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer)) NOT NULL
);
--> statement-breakpoint
CREATE UNIQUE INDEX `character_cards_slug_unique` ON `character_cards` (`slug`);--> statement-breakpoint
CREATE INDEX `character_cards_enabled_idx` ON `character_cards` (`enabled`);--> statement-breakpoint
CREATE INDEX `character_cards_sort_order_idx` ON `character_cards` (`sort_order`);--> statement-breakpoint
CREATE TABLE `character_messages` (
`id` text PRIMARY KEY NOT NULL,
`session_id` text NOT NULL,
`role` text(20) NOT NULL,
`content` text DEFAULT '' NOT NULL,
`sort_order` integer NOT NULL,
`created_at` integer DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer)) NOT NULL,
FOREIGN KEY (`session_id`) REFERENCES `character_sessions`(`id`) ON UPDATE no action ON DELETE cascade
);
--> statement-breakpoint
CREATE INDEX `idx_character_messages_session_sort` ON `character_messages` (`session_id`,`sort_order`);--> statement-breakpoint
CREATE TABLE `character_sessions` (
`id` text PRIMARY KEY NOT NULL,
`card_id` integer,
`user_id` integer,
`temp_token` text(64),
`title` text(100) DEFAULT '新对话' NOT NULL,
`model_id` integer,
`last_active_at` integer DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer)) NOT NULL,
`expires_at` integer,
`deleted_at` integer,
`created_at` integer DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer)) NOT NULL,
`updated_at` integer DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer)) NOT NULL,
FOREIGN KEY (`card_id`) REFERENCES `character_cards`(`id`) ON UPDATE no action ON DELETE set null,
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE cascade
);
--> statement-breakpoint
CREATE INDEX `idx_character_sessions_user_deleted` ON `character_sessions` (`user_id`,`deleted_at`);--> statement-breakpoint
CREATE INDEX `idx_character_sessions_temp_token` ON `character_sessions` (`temp_token`);--> statement-breakpoint
CREATE INDEX `idx_character_sessions_card` ON `character_sessions` (`card_id`);