mirror of
https://github.com/RayLabsHQ/gitea-mirror.git
synced 2025-12-06 19:46:44 +03:00
180 lines
7.8 KiB
SQL
180 lines
7.8 KiB
SQL
CREATE TABLE `accounts` (
|
|
`id` text PRIMARY KEY NOT NULL,
|
|
`account_id` text NOT NULL,
|
|
`user_id` text NOT NULL,
|
|
`provider_id` text NOT NULL,
|
|
`provider_user_id` text,
|
|
`access_token` text,
|
|
`refresh_token` text,
|
|
`expires_at` integer,
|
|
`password` text,
|
|
`created_at` integer DEFAULT (unixepoch()) NOT NULL,
|
|
`updated_at` integer DEFAULT (unixepoch()) NOT NULL,
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE INDEX `idx_accounts_account_id` ON `accounts` (`account_id`);--> statement-breakpoint
|
|
CREATE INDEX `idx_accounts_user_id` ON `accounts` (`user_id`);--> statement-breakpoint
|
|
CREATE INDEX `idx_accounts_provider` ON `accounts` (`provider_id`,`provider_user_id`);--> statement-breakpoint
|
|
CREATE TABLE `configs` (
|
|
`id` text PRIMARY KEY NOT NULL,
|
|
`user_id` text NOT NULL,
|
|
`name` text NOT NULL,
|
|
`is_active` integer DEFAULT true NOT NULL,
|
|
`github_config` text NOT NULL,
|
|
`gitea_config` text NOT NULL,
|
|
`include` text DEFAULT '["*"]' NOT NULL,
|
|
`exclude` text DEFAULT '[]' NOT NULL,
|
|
`schedule_config` text NOT NULL,
|
|
`cleanup_config` text NOT NULL,
|
|
`created_at` integer DEFAULT (unixepoch()) NOT NULL,
|
|
`updated_at` integer DEFAULT (unixepoch()) NOT NULL,
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `events` (
|
|
`id` text PRIMARY KEY NOT NULL,
|
|
`user_id` text NOT NULL,
|
|
`channel` text NOT NULL,
|
|
`payload` text NOT NULL,
|
|
`read` integer DEFAULT false NOT NULL,
|
|
`created_at` integer DEFAULT (unixepoch()) NOT NULL,
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE INDEX `idx_events_user_channel` ON `events` (`user_id`,`channel`);--> statement-breakpoint
|
|
CREATE INDEX `idx_events_created_at` ON `events` (`created_at`);--> statement-breakpoint
|
|
CREATE INDEX `idx_events_read` ON `events` (`read`);--> statement-breakpoint
|
|
CREATE TABLE `mirror_jobs` (
|
|
`id` text PRIMARY KEY NOT NULL,
|
|
`user_id` text NOT NULL,
|
|
`repository_id` text,
|
|
`repository_name` text,
|
|
`organization_id` text,
|
|
`organization_name` text,
|
|
`details` text,
|
|
`status` text DEFAULT 'imported' NOT NULL,
|
|
`message` text NOT NULL,
|
|
`timestamp` integer DEFAULT (unixepoch()) NOT NULL,
|
|
`job_type` text DEFAULT 'mirror' NOT NULL,
|
|
`batch_id` text,
|
|
`total_items` integer,
|
|
`completed_items` integer DEFAULT 0,
|
|
`item_ids` text,
|
|
`completed_item_ids` text DEFAULT '[]',
|
|
`in_progress` integer DEFAULT false NOT NULL,
|
|
`started_at` integer,
|
|
`completed_at` integer,
|
|
`last_checkpoint` integer,
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE INDEX `idx_mirror_jobs_user_id` ON `mirror_jobs` (`user_id`);--> statement-breakpoint
|
|
CREATE INDEX `idx_mirror_jobs_batch_id` ON `mirror_jobs` (`batch_id`);--> statement-breakpoint
|
|
CREATE INDEX `idx_mirror_jobs_in_progress` ON `mirror_jobs` (`in_progress`);--> statement-breakpoint
|
|
CREATE INDEX `idx_mirror_jobs_job_type` ON `mirror_jobs` (`job_type`);--> statement-breakpoint
|
|
CREATE INDEX `idx_mirror_jobs_timestamp` ON `mirror_jobs` (`timestamp`);--> statement-breakpoint
|
|
CREATE TABLE `organizations` (
|
|
`id` text PRIMARY KEY NOT NULL,
|
|
`user_id` text NOT NULL,
|
|
`config_id` text NOT NULL,
|
|
`name` text NOT NULL,
|
|
`avatar_url` text NOT NULL,
|
|
`membership_role` text DEFAULT 'member' NOT NULL,
|
|
`is_included` integer DEFAULT true NOT NULL,
|
|
`destination_org` text,
|
|
`status` text DEFAULT 'imported' NOT NULL,
|
|
`last_mirrored` integer,
|
|
`error_message` text,
|
|
`repository_count` integer DEFAULT 0 NOT NULL,
|
|
`created_at` integer DEFAULT (unixepoch()) NOT NULL,
|
|
`updated_at` integer DEFAULT (unixepoch()) NOT NULL,
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`config_id`) REFERENCES `configs`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE INDEX `idx_organizations_user_id` ON `organizations` (`user_id`);--> statement-breakpoint
|
|
CREATE INDEX `idx_organizations_config_id` ON `organizations` (`config_id`);--> statement-breakpoint
|
|
CREATE INDEX `idx_organizations_status` ON `organizations` (`status`);--> statement-breakpoint
|
|
CREATE INDEX `idx_organizations_is_included` ON `organizations` (`is_included`);--> statement-breakpoint
|
|
CREATE TABLE `repositories` (
|
|
`id` text PRIMARY KEY NOT NULL,
|
|
`user_id` text NOT NULL,
|
|
`config_id` text NOT NULL,
|
|
`name` text NOT NULL,
|
|
`full_name` text NOT NULL,
|
|
`url` text NOT NULL,
|
|
`clone_url` text NOT NULL,
|
|
`owner` text NOT NULL,
|
|
`organization` text,
|
|
`mirrored_location` text DEFAULT '',
|
|
`is_private` integer DEFAULT false NOT NULL,
|
|
`is_fork` integer DEFAULT false NOT NULL,
|
|
`forked_from` text,
|
|
`has_issues` integer DEFAULT false NOT NULL,
|
|
`is_starred` integer DEFAULT false NOT NULL,
|
|
`is_archived` integer DEFAULT false NOT NULL,
|
|
`size` integer DEFAULT 0 NOT NULL,
|
|
`has_lfs` integer DEFAULT false NOT NULL,
|
|
`has_submodules` integer DEFAULT false NOT NULL,
|
|
`language` text,
|
|
`description` text,
|
|
`default_branch` text NOT NULL,
|
|
`visibility` text DEFAULT 'public' NOT NULL,
|
|
`status` text DEFAULT 'imported' NOT NULL,
|
|
`last_mirrored` integer,
|
|
`error_message` text,
|
|
`destination_org` text,
|
|
`created_at` integer DEFAULT (unixepoch()) NOT NULL,
|
|
`updated_at` integer DEFAULT (unixepoch()) NOT NULL,
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`config_id`) REFERENCES `configs`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE INDEX `idx_repositories_user_id` ON `repositories` (`user_id`);--> statement-breakpoint
|
|
CREATE INDEX `idx_repositories_config_id` ON `repositories` (`config_id`);--> statement-breakpoint
|
|
CREATE INDEX `idx_repositories_status` ON `repositories` (`status`);--> statement-breakpoint
|
|
CREATE INDEX `idx_repositories_owner` ON `repositories` (`owner`);--> statement-breakpoint
|
|
CREATE INDEX `idx_repositories_organization` ON `repositories` (`organization`);--> statement-breakpoint
|
|
CREATE INDEX `idx_repositories_is_fork` ON `repositories` (`is_fork`);--> statement-breakpoint
|
|
CREATE INDEX `idx_repositories_is_starred` ON `repositories` (`is_starred`);--> statement-breakpoint
|
|
CREATE TABLE `sessions` (
|
|
`id` text PRIMARY KEY NOT NULL,
|
|
`token` text NOT NULL,
|
|
`user_id` text NOT NULL,
|
|
`expires_at` integer NOT NULL,
|
|
`ip_address` text,
|
|
`user_agent` text,
|
|
`created_at` integer DEFAULT (unixepoch()) NOT NULL,
|
|
`updated_at` integer DEFAULT (unixepoch()) NOT NULL,
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `sessions_token_unique` ON `sessions` (`token`);--> statement-breakpoint
|
|
CREATE INDEX `idx_sessions_user_id` ON `sessions` (`user_id`);--> statement-breakpoint
|
|
CREATE INDEX `idx_sessions_token` ON `sessions` (`token`);--> statement-breakpoint
|
|
CREATE INDEX `idx_sessions_expires_at` ON `sessions` (`expires_at`);--> statement-breakpoint
|
|
CREATE TABLE `users` (
|
|
`id` text PRIMARY KEY NOT NULL,
|
|
`name` text,
|
|
`email` text NOT NULL,
|
|
`email_verified` integer DEFAULT false NOT NULL,
|
|
`image` text,
|
|
`created_at` integer DEFAULT (unixepoch()) NOT NULL,
|
|
`updated_at` integer DEFAULT (unixepoch()) NOT NULL,
|
|
`username` text
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `users_email_unique` ON `users` (`email`);--> statement-breakpoint
|
|
CREATE TABLE `verification_tokens` (
|
|
`id` text PRIMARY KEY NOT NULL,
|
|
`token` text NOT NULL,
|
|
`identifier` text NOT NULL,
|
|
`type` text NOT NULL,
|
|
`expires_at` integer NOT NULL,
|
|
`created_at` integer DEFAULT (unixepoch()) NOT NULL
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `verification_tokens_token_unique` ON `verification_tokens` (`token`);--> statement-breakpoint
|
|
CREATE INDEX `idx_verification_tokens_token` ON `verification_tokens` (`token`);--> statement-breakpoint
|
|
CREATE INDEX `idx_verification_tokens_identifier` ON `verification_tokens` (`identifier`); |