27 lines
1.2 KiB
SQL
27 lines
1.2 KiB
SQL
-- 1. Add the new columns
|
|
ALTER TABLE `sale_invoice_tsp_attempts`
|
|
ADD COLUMN `error_message` TEXT NULL,
|
|
ADD COLUMN `fiscal_warnings` JSON NULL,
|
|
ADD COLUMN `provider_response` JSON NULL,
|
|
ADD COLUMN `validation_errors` JSON NULL;
|
|
|
|
-- 2. Copy data from the old column to the new JSON column
|
|
-- Note: We use a check to ensure we don't try to move invalid data
|
|
UPDATE `sale_invoice_tsp_attempts`
|
|
SET `provider_response` = CAST(`provider_response_payload` AS JSON)
|
|
WHERE `provider_response_payload` IS NOT NULL AND JSON_VALID(`provider_response_payload`);
|
|
|
|
-- 3. SANITIZE 'provider_request_payload' before converting to JSON
|
|
-- This replaces empty strings or invalid JSON with a default empty object '{}'
|
|
UPDATE `sale_invoice_tsp_attempts`
|
|
SET `provider_request_payload` = '{}'
|
|
WHERE `provider_request_payload` IS NULL
|
|
OR `provider_request_payload` = ''
|
|
OR JSON_VALID(`provider_request_payload`) = 0;
|
|
|
|
-- 4. Perform the final modifications and drop the old column
|
|
ALTER TABLE `sale_invoice_tsp_attempts`
|
|
DROP COLUMN `provider_response_payload`,
|
|
MODIFY `status` ENUM('NOT_SEND', 'QUEUED', 'FISCAL_QUEUED', 'SEND_FAILURE', 'SUCCESS', 'FAILURE') NOT NULL,
|
|
MODIFY `provider_request_payload` JSON NOT NULL;
|