35 lines
1.6 KiB
SQL
35 lines
1.6 KiB
SQL
-- 迁移:system_config 新增 enterprise_id 列
|
||
-- enterprise_id = 0 表示全局/超管配置,> 0 表示对应企业的配置
|
||
-- 执行前请先备份数据库
|
||
|
||
-- 1. 新增 enterprise_id 列(默认 0 = 全局)
|
||
ALTER TABLE `mbti_system_config`
|
||
ADD COLUMN `enterprise_id` INT NOT NULL DEFAULT 0 COMMENT '企业ID,0=全局/个人版' AFTER `key`;
|
||
|
||
-- 2. 删除旧的单字段唯一索引,改为 (key, enterprise_id) 联合唯一索引
|
||
ALTER TABLE `mbti_system_config` DROP INDEX `idx_key`;
|
||
ALTER TABLE `mbti_system_config` ADD UNIQUE INDEX `idx_key_eid` (`key`, `enterprise_id`);
|
||
|
||
-- 3. 迁移旧数据:poster_config_eid_N → key='poster_config', enterprise_id=N
|
||
UPDATE `mbti_system_config`
|
||
SET `enterprise_id` = CAST(SUBSTRING_INDEX(`key`, '_eid_', -1) AS UNSIGNED),
|
||
`key` = 'poster_config'
|
||
WHERE `key` LIKE 'poster_config_eid_%';
|
||
|
||
-- 4. 迁移旧数据:distribution_enterprise_N → key='distribution', enterprise_id=N
|
||
UPDATE `mbti_system_config`
|
||
SET `enterprise_id` = CAST(SUBSTRING_INDEX(`key`, 'distribution_enterprise_', -1) AS UNSIGNED),
|
||
`key` = 'distribution'
|
||
WHERE `key` LIKE 'distribution_enterprise_%';
|
||
|
||
-- 5. 迁移旧数据:distribution_personal → key='distribution', enterprise_id=0
|
||
UPDATE `mbti_system_config`
|
||
SET `key` = 'distribution'
|
||
WHERE `key` = 'distribution_personal';
|
||
|
||
-- 6. 迁移旧数据:miniprogram_config_eid_N → key='text_config', enterprise_id=N
|
||
UPDATE `mbti_system_config`
|
||
SET `enterprise_id` = CAST(SUBSTRING_INDEX(`key`, '_eid_', -1) AS UNSIGNED),
|
||
`key` = 'text_config'
|
||
WHERE `key` LIKE 'miniprogram_config_eid_%';
|