71 lines
2.2 KiB
SQL
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`); |