init push
This commit is contained in:
30
migrations/20260427_file_lifecycle_gc.sql
Normal file
30
migrations/20260427_file_lifecycle_gc.sql
Normal file
@@ -0,0 +1,30 @@
|
||||
-- +goose Up
|
||||
ALTER TABLE file_files
|
||||
ADD COLUMN lifecycle_status VARCHAR(32) NOT NULL DEFAULT 'temp' AFTER status,
|
||||
ADD COLUMN attached_at DATETIME(6) NULL AFTER lifecycle_status,
|
||||
ADD COLUMN orphaned_at DATETIME(6) NULL AFTER attached_at,
|
||||
ADD COLUMN lifecycle_deleted_at DATETIME(6) NULL AFTER orphaned_at,
|
||||
ADD KEY idx_file_files_lifecycle_status_orphaned (lifecycle_status, orphaned_at);
|
||||
|
||||
UPDATE file_files
|
||||
SET lifecycle_status = CASE
|
||||
WHEN deleted_at IS NOT NULL THEN 'deleted'
|
||||
WHEN status = 'ready' AND name_slot = 'live' THEN 'active'
|
||||
ELSE 'temp'
|
||||
END,
|
||||
attached_at = CASE
|
||||
WHEN status = 'ready' AND name_slot = 'live' AND deleted_at IS NULL THEN COALESCE(attached_at, updated_at)
|
||||
ELSE attached_at
|
||||
END,
|
||||
lifecycle_deleted_at = CASE
|
||||
WHEN deleted_at IS NOT NULL THEN COALESCE(lifecycle_deleted_at, deleted_at)
|
||||
ELSE lifecycle_deleted_at
|
||||
END;
|
||||
|
||||
-- +goose Down
|
||||
ALTER TABLE file_files
|
||||
DROP KEY idx_file_files_lifecycle_status_orphaned,
|
||||
DROP COLUMN lifecycle_deleted_at,
|
||||
DROP COLUMN orphaned_at,
|
||||
DROP COLUMN attached_at,
|
||||
DROP COLUMN lifecycle_status;
|
||||
Reference in New Issue
Block a user