Files
novalon-website/drizzle/0000_white_justice.sql
T
2026-03-08 21:01:30 +08:00

71 lines
2.2 KiB
SQL

CREATE TABLE `audit_logs` (
`id` text PRIMARY KEY NOT NULL,
`user_id` text,
`action` text NOT NULL,
`resource_type` text NOT NULL,
`resource_id` text,
`details` text,
`ip_address` text,
`user_agent` text,
`timestamp` integer NOT NULL,
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action
);
--> statement-breakpoint
CREATE TABLE `content` (
`id` text PRIMARY KEY NOT NULL,
`type` text NOT NULL,
`title` text NOT NULL,
`slug` text NOT NULL,
`excerpt` text,
`content` text NOT NULL,
`cover_image` text,
`category` text,
`tags` text,
`status` text DEFAULT 'draft' NOT NULL,
`published_at` integer,
`author_id` text NOT NULL,
`sort_order` integer DEFAULT 0,
`metadata` text,
`created_at` integer NOT NULL,
`updated_at` integer NOT NULL,
FOREIGN KEY (`author_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action
);
--> statement-breakpoint
CREATE UNIQUE INDEX `content_slug_unique` ON `content` (`slug`);--> statement-breakpoint
CREATE TABLE `content_versions` (
`id` text PRIMARY KEY NOT NULL,
`content_id` text NOT NULL,
`version` integer NOT NULL,
`title` text NOT NULL,
`content` text NOT NULL,
`changes` text,
`changed_by` text NOT NULL,
`changed_at` integer NOT NULL,
FOREIGN KEY (`content_id`) REFERENCES `content`(`id`) ON UPDATE no action ON DELETE no action,
FOREIGN KEY (`changed_by`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action
);
--> statement-breakpoint
CREATE TABLE `site_config` (
`id` text PRIMARY KEY NOT NULL,
`key` text NOT NULL,
`value` text NOT NULL,
`category` text NOT NULL,
`description` text,
`updated_at` integer NOT NULL,
`updated_by` text,
FOREIGN KEY (`updated_by`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action
);
--> statement-breakpoint
CREATE UNIQUE INDEX `site_config_key_unique` ON `site_config` (`key`);--> statement-breakpoint
CREATE TABLE `users` (
`id` text PRIMARY KEY NOT NULL,
`email` text NOT NULL,
`password_hash` text,
`name` text NOT NULL,
`role` text DEFAULT 'editor' NOT NULL,
`avatar` text,
`created_at` integer NOT NULL,
`updated_at` integer NOT NULL
);
--> statement-breakpoint
CREATE UNIQUE INDEX `users_email_unique` ON `users` (`email`);