Files
fm_be/migrations/20260403_file_manager_file_lifecycle_phase1.sql
2026-07-16 22:16:45 +07:00

43 lines
1.3 KiB
SQL

-- +goose Up
ALTER TABLE file_files
MODIFY COLUMN status VARCHAR(32) NOT NULL DEFAULT 'uploaded',
ADD COLUMN processing_started_at DATETIME(6) NULL AFTER status,
ADD COLUMN processed_at DATETIME(6) NULL AFTER processing_started_at,
ADD COLUMN validated_at DATETIME(6) NULL AFTER processed_at,
ADD COLUMN failed_at DATETIME(6) NULL AFTER validated_at,
ADD COLUMN failure_reason TEXT NULL AFTER failed_at;
UPDATE file_files
SET status = 'validated',
processed_at = COALESCE(processed_at, updated_at),
validated_at = COALESCE(validated_at, updated_at)
WHERE status = 'pending';
UPDATE file_files
SET status = 'processing',
processing_started_at = COALESCE(processing_started_at, updated_at)
WHERE status = 'uploading';
UPDATE file_files
SET failure_reason = NULLIF(TRIM(upload_error), '')
WHERE (failure_reason IS NULL OR failure_reason = '')
AND upload_error IS NOT NULL
AND TRIM(upload_error) <> '';
-- +goose Down
UPDATE file_files
SET status = 'pending'
WHERE status IN ('uploaded', 'validated');
UPDATE file_files
SET status = 'uploading'
WHERE status = 'processing';
ALTER TABLE file_files
DROP COLUMN failure_reason,
DROP COLUMN failed_at,
DROP COLUMN validated_at,
DROP COLUMN processed_at,
DROP COLUMN processing_started_at,
MODIFY COLUMN status VARCHAR(32) NOT NULL DEFAULT 'pending';