1.0.576.sql 2.5 KB

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