Files
orderPRO/database/migrations/20260308_000039_ensure_integrations_fetch_columns.sql

37 lines
1.6 KiB
SQL

-- =============================================================
-- COMPENSATING MIGRATION
-- Kompensuje: 20260302_000017_add_shoppro_orders_fetch_settings_to_integrations.sql
-- Powód: Oryginalna migracja 000017 używa prostego ALTER TABLE bez sprawdzenia
-- istnienia kolumn (nie-idempotentna). Na środowisku, gdzie kolumny
-- orders_fetch_enabled i orders_fetch_start_date już istniały (ręczne zmiany
-- lub wcześniejszy deploy), migracja 000017 zawodziła z błędem duplicate column.
-- Migracja 000039 dodaje kolumny warunkowo przez information_schema.
-- Status: Środowisko zsynchronizowane po 2026-03-08. Migracja
-- idempotentna — bezpieczna do ponownego uruchomienia.
-- =============================================================
SET @sql := (
SELECT IF(COUNT(*) = 0,
'ALTER TABLE `integrations` ADD COLUMN `orders_fetch_enabled` TINYINT(1) NOT NULL DEFAULT 0 AFTER `is_active`',
'SELECT 1')
FROM information_schema.columns
WHERE table_schema = DATABASE()
AND table_name = 'integrations'
AND column_name = 'orders_fetch_enabled'
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @sql := (
SELECT IF(COUNT(*) = 0,
'ALTER TABLE `integrations` ADD COLUMN `orders_fetch_start_date` DATE NULL AFTER `orders_fetch_enabled`',
'SELECT 1')
FROM information_schema.columns
WHERE table_schema = DATABASE()
AND table_name = 'integrations'
AND column_name = 'orders_fetch_start_date'
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;