Files
Perplexica/drizzle/0001_acoustic_wild_pack.sql
2025-09-03 14:36:47 +05:30

51 lines
1.5 KiB
SQL

PRAGMA foreign_keys=OFF;
--> statement-breakpoint
CREATE TABLE `__new_messages` (
`id` integer PRIMARY KEY NOT NULL,
`type` text NOT NULL,
`chatId` text NOT NULL,
`createdAt` text DEFAULT CURRENT_TIMESTAMP NOT NULL,
`messageId` text NOT NULL,
`content` text,
`sources` text DEFAULT '[]'
);
--> statement-breakpoint
INSERT INTO `__new_messages`("id", "type", "chatId", "createdAt", "messageId", "content", "sources")
SELECT
id,
COALESCE(type, 'user') as type,
chatId,
CASE
WHEN metadata IS NOT NULL AND instr(metadata, '\"createdAt\":\"') > 0 THEN
substr(
metadata,
instr(metadata, '\"createdAt\":\"') + 14,
CASE
WHEN instr(substr(metadata, instr(metadata, '\"createdAt\":\"') + 14), '\"') > 0 THEN
instr(substr(metadata, instr(metadata, '\"createdAt\":\"') + 14), '\"') - 1
ELSE 24
END
)
ELSE CURRENT_TIMESTAMP
END as createdAt,
messageId,
content,
'[]' as sources
FROM `messages`;
--> statement-breakpoint
DROP TABLE `messages`;
--> statement-breakpoint
ALTER TABLE `__new_messages` RENAME TO `messages`;
--> statement-breakpoint
PRAGMA foreign_keys=ON;
--> statement-breakpoint
CREATE INDEX IF NOT EXISTS `idx_messages_chatId` ON `messages` (`chatId`);
--> statement-breakpoint
CREATE INDEX IF NOT EXISTS `idx_messages_type` ON `messages` (`type`);
--> statement-breakpoint
CREATE INDEX IF NOT EXISTS `idx_messages_createdAt` ON `messages` (`createdAt`);