43 lines
1.3 KiB
SQL
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';
|