| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- -- 1.0.576 F-4:conn_mode 显式声明 + 来源归属改按 system_code。
- -- 不含任何口令。T8 的 db_* 由启动期导入从本环境 Database.json 写入,不进本脚本。
- -- 可重跑:加列、换唯一键都先查 information_schema。
- SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS
- WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='mdp_source' AND COLUMN_NAME='conn_mode')=0,
- 'ALTER TABLE mdp_source ADD COLUMN conn_mode VARCHAR(16) NOT NULL DEFAULT ''EXTERNAL'' COMMENT ''SELF=复用主库 EXTERNAL=按 db_* 独立连接''',
- 'DO 0');
- PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
- -- 一次性回填。这四个编码只允许出现在本脚本,运行期代码不得再按它们分支。
- UPDATE mdp_source
- SET conn_mode = 'SELF'
- WHERE IFNULL(db_host,'') = ''
- AND UPPER(IFNULL(system_code, source_code)) IN
- ('AIDOP_NATIVE','AIDOPDEV_MYSQL','LOCAL_MYSQL','AIDOP_MYSQL');
- SET @sql := IF((SELECT COUNT(*) FROM information_schema.COLUMNS
- WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='ado_source_domain_tenant_map' AND COLUMN_NAME='system_code')=0,
- 'ALTER TABLE ado_source_domain_tenant_map ADD COLUMN system_code VARCHAR(50) NOT NULL DEFAULT '''' COMMENT ''来源系统码''',
- 'DO 0');
- PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
- UPDATE ado_source_domain_tenant_map m
- JOIN mdp_source s ON s.source_code = m.source_code
- SET m.system_code = IFNULL(NULLIF(s.system_code,''), s.source_code)
- WHERE IFNULL(m.system_code,'') = '';
- SET @sql := IF((SELECT COUNT(*) FROM information_schema.STATISTICS
- WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='ado_source_domain_tenant_map' AND INDEX_NAME='uk_source_domain')>0,
- 'ALTER TABLE ado_source_domain_tenant_map DROP INDEX uk_source_domain',
- 'DO 0');
- PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
- SET @sql := IF((SELECT COUNT(*) FROM information_schema.STATISTICS
- WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='ado_source_domain_tenant_map' AND INDEX_NAME='uk_system_domain')=0,
- 'ALTER TABLE ado_source_domain_tenant_map ADD UNIQUE KEY uk_system_domain (system_code, domain)',
- 'DO 0');
- PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
- INSERT INTO ado_source_domain_tenant_map (system_code, source_code, domain, tenant_id, status, remark)
- SELECT 'T8', 'T8_V5_SQLSERVER', 'pbxfxp', 797403760988229, 1, 'F-4:由 AidopSourceTenantMap 内置字典迁入'
- WHERE NOT EXISTS (
- SELECT 1 FROM ado_source_domain_tenant_map WHERE system_code='T8' AND domain='pbxfxp'
- );
|