zerobyte/app/drizzle/20260518202140_numerous_prodigy/migration.sql
Nico 94f6d0529f
refactor(mutext): persist repository locks in database (#895)
* refactor(mutext): persist repository locks in database

* fix: clean up promoted repository lock on queued abort

* fix: throttle repository lock cleanup during polling
2026-05-19 18:59:40 +02:00

28 lines
1.2 KiB
SQL

CREATE TABLE `repository_lock_waiters` (
`id` text PRIMARY KEY,
`repository_id` text NOT NULL,
`type` text NOT NULL,
`operation` text NOT NULL,
`owner_id` text NOT NULL,
`requested_at` integer NOT NULL,
`expires_at` integer NOT NULL,
`heartbeat_at` integer NOT NULL
);
--> statement-breakpoint
CREATE TABLE `repository_locks` (
`id` text PRIMARY KEY,
`repository_id` text NOT NULL,
`type` text NOT NULL,
`operation` text NOT NULL,
`owner_id` text NOT NULL,
`acquired_at` integer NOT NULL,
`expires_at` integer NOT NULL,
`heartbeat_at` integer NOT NULL
);
--> statement-breakpoint
CREATE INDEX `repository_lock_waiters_repository_id_idx` ON `repository_lock_waiters` (`repository_id`);--> statement-breakpoint
CREATE INDEX `repository_lock_waiters_expires_at_idx` ON `repository_lock_waiters` (`expires_at`);--> statement-breakpoint
CREATE INDEX `repository_lock_waiters_owner_id_idx` ON `repository_lock_waiters` (`owner_id`);--> statement-breakpoint
CREATE INDEX `repository_locks_repository_id_idx` ON `repository_locks` (`repository_id`);--> statement-breakpoint
CREATE INDEX `repository_locks_expires_at_idx` ON `repository_locks` (`expires_at`);--> statement-breakpoint
CREATE INDEX `repository_locks_owner_id_idx` ON `repository_locks` (`owner_id`);