27 lines
1.3 KiB
SQL
27 lines
1.3 KiB
SQL
CREATE TABLE `relay_purge_jobs` (
|
|
`id` text PRIMARY KEY NOT NULL,
|
|
`deletion_request_id` text NOT NULL,
|
|
`tenant_id` text NOT NULL,
|
|
`relay_node_id` text NOT NULL,
|
|
`placement_generation` integer NOT NULL,
|
|
`state` text DEFAULT 'quiescing' NOT NULL,
|
|
`requested_by` text NOT NULL,
|
|
`reason` text NOT NULL,
|
|
`started_at` text NOT NULL,
|
|
`updated_at` text NOT NULL,
|
|
`completed_at` text,
|
|
`evidence_sha256` text,
|
|
`last_error_code` text,
|
|
FOREIGN KEY (`deletion_request_id`) REFERENCES `account_deletion_requests`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`tenant_id`) REFERENCES `tenant_instances`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`relay_node_id`) REFERENCES `relay_nodes`(`id`) ON UPDATE no action ON DELETE no action,
|
|
CONSTRAINT `relay_purge_generation_positive` CHECK (`placement_generation` > 0),
|
|
CONSTRAINT `relay_purge_state_valid` CHECK (`state` IN ('quiescing', 'completed', 'failed'))
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `idx_relay_purge_deletion_request` ON `relay_purge_jobs` (`deletion_request_id`);
|
|
--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `idx_relay_purge_tenant` ON `relay_purge_jobs` (`tenant_id`);
|
|
--> statement-breakpoint
|
|
CREATE INDEX `idx_relay_purge_node_state` ON `relay_purge_jobs` (`relay_node_id`,`state`,`updated_at`);
|