32 lines
850 B
MySQL
32 lines
850 B
MySQL
|
|
ALTER TABLE `payment_methods`
|
||
|
|
ADD COLUMN IF NOT EXISTS `is_default` TINYINT(1) NOT NULL DEFAULT 0 AFTER `is_system`;
|
||
|
|
|
||
|
|
ALTER TABLE `payment_methods`
|
||
|
|
ADD COLUMN IF NOT EXISTS `system_key` VARCHAR(64) NULL AFTER `is_default`;
|
||
|
|
|
||
|
|
SET @index_exists := (
|
||
|
|
SELECT COUNT(1)
|
||
|
|
FROM information_schema.statistics
|
||
|
|
WHERE table_schema = DATABASE()
|
||
|
|
AND table_name = 'payment_methods'
|
||
|
|
AND index_name = 'uq_payment_methods_company_system_key'
|
||
|
|
);
|
||
|
|
|
||
|
|
SET @create_index_sql := IF(
|
||
|
|
@index_exists = 0,
|
||
|
|
'CREATE UNIQUE INDEX `uq_payment_methods_company_system_key` ON `payment_methods` (`company_id`, `system_key`)',
|
||
|
|
'SELECT 1'
|
||
|
|
);
|
||
|
|
|
||
|
|
PREPARE stmt FROM @create_index_sql;
|
||
|
|
EXECUTE stmt;
|
||
|
|
DEALLOCATE PREPARE stmt;
|
||
|
|
|
||
|
|
UPDATE `payment_methods`
|
||
|
|
SET `is_default` = 0
|
||
|
|
WHERE `is_default` IS NULL;
|
||
|
|
|
||
|
|
UPDATE `payment_methods`
|
||
|
|
SET `system_key` = NULL
|
||
|
|
WHERE `is_system` = 0;
|