migration.msql 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. -- Переименование таблиц в нижний регистр
  2. RENAME TABLE Customers TO customers;
  3. RENAME TABLE OU TO ou;
  4. RENAME TABLE User_auth TO user_auth;
  5. RENAME TABLE User_list TO user_list;
  6. RENAME TABLE User_stats TO user_stats;
  7. RENAME TABLE User_stats_full TO user_stats_full;
  8. RENAME TABLE User_auth_alias TO user_auth_alias;
  9. RENAME TABLE Wan_stats TO wan_stats;
  10. RENAME TABLE Traffic_detail TO traffic_detail;
  11. RENAME TABLE Unknown_mac TO unknown_mac;
  12. RENAME TABLE Group_filters TO group_filters;
  13. RENAME TABLE Group_list TO group_list;
  14. RENAME TABLE Filter_list TO filter_list;
  15. RENAME TABLE Queue_list TO queue_list;
  16. -- Изменение типов и имён столбцов
  17. ALTER TABLE wan_stats CHANGE COLUMN `in` bytes_in BIGINT NOT NULL DEFAULT 0;
  18. ALTER TABLE wan_stats CHANGE COLUMN `out` bytes_out BIGINT NOT NULL DEFAULT 0;
  19. ALTER TABLE group_filters CHANGE COLUMN `order` rule_order INTEGER NOT NULL DEFAULT 0;
  20. ALTER TABLE user_auth CHANGE COLUMN `client-id` client_id VARCHAR(250);
  21. ALTER TABLE customers CHANGE COLUMN `Login` login VARCHAR(20) DEFAULT NULL;
  22. -- Переименовываем eof → end_life в user_auth
  23. ALTER TABLE user_auth CHANGE COLUMN `eof` end_life DATETIME NULL DEFAULT NULL;
  24. ALTER TABLE dhcp_log CHANGE COLUMN `client-id` client_id VARCHAR(250);
  25. ALTER TABLE dhcp_log CHANGE COLUMN `circuit-id` circuit_id VARCHAR(255);
  26. ALTER TABLE dhcp_log CHANGE COLUMN `remote-id` remote_id VARCHAR(255);
  27. -- Точки в именах
  28. ALTER TABLE acl CHANGE COLUMN `description.english` description_english VARCHAR(250) NOT NULL;
  29. ALTER TABLE acl CHANGE COLUMN `description.russian` description_russian VARCHAR(250) NOT NULL;
  30. ALTER TABLE config_options CHANGE COLUMN `description.english` description_english TEXT;
  31. ALTER TABLE config_options CHANGE COLUMN `description.russian` description_russian TEXT;
  32. ALTER TABLE device_types CHANGE COLUMN `name.russian` name_russian VARCHAR(50);
  33. ALTER TABLE device_types CHANGE COLUMN `name.english` name_english VARCHAR(50);
  34. -- timestamp → ts
  35. ALTER TABLE dhcp_log CHANGE COLUMN `timestamp` ts DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP;
  36. ALTER TABLE dhcp_queue CHANGE COLUMN `timestamp` ts DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP;
  37. ALTER TABLE dns_cache CHANGE COLUMN `timestamp` ts DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP;
  38. ALTER TABLE mac_history CHANGE COLUMN `timestamp` ts DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP;
  39. ALTER TABLE user_auth CHANGE COLUMN `timestamp` ts DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP;
  40. ALTER TABLE user_stats CHANGE COLUMN `timestamp` ts DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP;
  41. ALTER TABLE user_stats_full CHANGE COLUMN `timestamp` ts DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP;
  42. ALTER TABLE worklog CHANGE COLUMN `timestamp` ts DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP;
  43. ALTER TABLE user_list CHANGE COLUMN `timestamp` ts DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP;
  44. ALTER TABLE traffic_detail CHANGE COLUMN `timestamp` ts DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP;
  45. ALTER TABLE unknown_mac CHANGE COLUMN `timestamp` ts DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP;
  46. ALTER TABLE user_auth_alias CHANGE COLUMN `timestamp` ts DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP;
  47. -- time/date → ts
  48. DELETE FROM wan_stats WHERE `time` <= '1970-01-01 03:00:00' OR `time` = '0000-00-00 00:00:00';
  49. ALTER TABLE wan_stats CHANGE COLUMN `time` ts DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP;
  50. ALTER TABLE remote_syslog CHANGE COLUMN `date` ts DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP;
  51. -- Добавляем столбец `comment` во все нужные таблицы
  52. ALTER TABLE building ADD COLUMN `comment` VARCHAR(255);
  53. ALTER TABLE customers ADD COLUMN `comment` VARCHAR(255);
  54. ALTER TABLE devices ADD COLUMN `comment` VARCHAR(255);
  55. ALTER TABLE filter_instances ADD COLUMN `comment` VARCHAR(255);
  56. ALTER TABLE filter_list ADD COLUMN `comment` VARCHAR(255);
  57. ALTER TABLE group_list ADD COLUMN `comment` VARCHAR(255);
  58. ALTER TABLE ou ADD COLUMN `comment` VARCHAR(255);
  59. ALTER TABLE subnets ADD COLUMN `comment` VARCHAR(255);
  60. ALTER TABLE auth_rules ADD COLUMN `comment` VARCHAR(255);
  61. ALTER TABLE device_ports ADD COLUMN `comment` description VARCHAR(255);
  62. -- Теперь безопасно переименовываем `comment` → `description`
  63. ALTER TABLE building CHANGE COLUMN `comment` description VARCHAR(250);
  64. ALTER TABLE customers CHANGE COLUMN `comment` description VARCHAR(255);
  65. ALTER TABLE devices CHANGE COLUMN `comment` description VARCHAR(255);
  66. ALTER TABLE filter_instances CHANGE COLUMN `comment` description VARCHAR(200);
  67. ALTER TABLE filter_list CHANGE COLUMN `comment` description VARCHAR(250);
  68. ALTER TABLE group_list CHANGE COLUMN `comment` description VARCHAR(250);
  69. ALTER TABLE ou CHANGE COLUMN `comment` description VARCHAR(250);
  70. ALTER TABLE subnets CHANGE COLUMN `comment` description VARCHAR(250);
  71. ALTER TABLE user_list CHANGE COLUMN `fio` description VARCHAR(255);
  72. ALTER TABLE auth_rules CHANGE COLUMN `comment` description VARCHAR(255);
  73. ALTER TABLE device_ports CHANGE COLUMN `comment` description VARCHAR(255);
  74. ALTER TABLE user_auth CHANGE COLUMN `comments` description VARCHAR(250);
  75. -- Добавляем поле mac_found в user_auth
  76. ALTER TABLE user_auth ADD COLUMN mac_found DATETIME NULL DEFAULT NULL;
  77. UPDATE user_auth SET mac_found = last_found WHERE last_found IS NOT NULL;
  78. -- type → уточнённые имена
  79. ALTER TABLE config_options CHANGE COLUMN `type` option_type VARCHAR(100) NOT NULL;
  80. ALTER TABLE dns_queue CHANGE COLUMN `type` operation_type VARCHAR(10) NOT NULL DEFAULT 'add';
  81. ALTER TABLE filter_list CHANGE COLUMN `type` filter_type SMALLINT NOT NULL DEFAULT 0;
  82. ALTER TABLE auth_rules CHANGE COLUMN `type` rule_type INT(11) NOT NULL;
  83. ALTER TABLE device_l3_interfaces CHANGE COLUMN `type` interface_type INT(11) NOT NULL DEFAULT 0;
  84. -- user_stats - add pkt counters
  85. ALTER TABLE `user_stats` ADD COLUMN `pkt_in` int(11) NOT NULL DEFAULT 0;
  86. ALTER TABLE `user_stats` ADD COLUMN `pkt_out` int(11) NOT NULL DEFAULT 0;
  87. ALTER TABLE `user_stats` ADD COLUMN `step` int(11) NOT NULL DEFAULT 3600;
  88. ALTER TABLE `user_stats_full` MODIFY COLUMN `pkt_in` int(11) NOT NULL DEFAULT 0;
  89. ALTER TABLE `user_stats_full` MODIFY COLUMN `pkt_out` int(11) NOT NULL DEFAULT 0;
  90. -- Set default value for ip to NULL
  91. ALTER TABLE `dhcp_log` MODIFY COLUMN `ip` varchar(15) NULL DEFAULT NULL;
  92. ALTER TABLE `dhcp_queue` MODIFY COLUMN `ip` varchar(15) NULL DEFAULT NULL;
  93. ALTER TABLE `mac_history` MODIFY COLUMN `ip` varchar(16) NULL DEFAULT NULL;
  94. ALTER TABLE `remote_syslog` MODIFY COLUMN `ip` varchar(15) NULL DEFAULT NULL;
  95. ALTER TABLE `user_auth` MODIFY COLUMN `ip` varchar(18) NULL DEFAULT NULL;
  96. -- Add ACL for disable user
  97. INSERT INTO acl (id, name, description_english, description_russian) VALUES (0, 'Disabled', 'User disabled', 'Пользователь отключен');
  98. -- queue_list
  99. ALTER TABLE queue_list CHANGE COLUMN `Download` `download` INT(11) NOT NULL DEFAULT 0;
  100. ALTER TABLE queue_list CHANGE COLUMN `Upload` `upload` INT(11) NOT NULL DEFAULT 0;
  101. -- speedup worklog
  102. ALTER TABLE `worklog` ADD INDEX `idx_ts` (`ts`);
  103. -- Исправление таблицы traffic_detail: src_ip/dst_ip → BIGINT
  104. ALTER TABLE `traffic_detail` MODIFY `src_ip` BIGINT NOT NULL DEFAULT 0, MODIFY `dst_ip` BIGINT NOT NULL DEFAULT 0;
  105. -- Исправление customers: убрать строковые 'NULL'
  106. ALTER TABLE `customers` MODIFY `login` VARCHAR(20) DEFAULT NULL, MODIFY `password` VARCHAR(255) DEFAULT NULL;
  107. -- 1. Переименовать `SN` → `sn` в таблице `devices`
  108. ALTER TABLE `devices` CHANGE COLUMN `SN` `sn` VARCHAR(80) DEFAULT NULL;
  109. -- 2. Переименовать `WikiName` → `wikiname` в таблице `user_auth`
  110. ALTER TABLE `user_auth` CHANGE COLUMN `WikiName` `wikiname` VARCHAR(250) DEFAULT NULL;
  111. -- mac_vendors: companyName → companyname
  112. ALTER TABLE `mac_vendors` CHANGE COLUMN `companyName` `companyname` VARCHAR(255) DEFAULT NULL;
  113. -- mac_vendors: companyAddress → companyaddress
  114. ALTER TABLE `mac_vendors` CHANGE COLUMN `companyAddress` `companyaddress` VARCHAR(255) DEFAULT NULL;
  115. -- device_ports: ifName → ifname
  116. ALTER TABLE `device_ports` CHANGE COLUMN `ifName` `ifname` VARCHAR(40) DEFAULT NULL;
  117. -- prepare group lieveling
  118. ALTER TABLE ou ADD COLUMN parent_id INT(11) DEFAULT NULL;
  119. -- change timestamp to datetime
  120. ALTER TABLE `ad_comp_cache` MODIFY COLUMN `last_found` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP();
  121. ALTER TABLE `devices` MODIFY COLUMN `locked_timestamp` DATETIME NULL DEFAULT CURRENT_TIMESTAMP();
  122. ALTER TABLE `variables` MODIFY COLUMN `clear_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP(), MODIFY COLUMN `created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP();
  123. -- migration mac to full
  124. -- 1. Обновляем mac_history
  125. ALTER TABLE `mac_history` MODIFY COLUMN `mac` VARCHAR(17) DEFAULT NULL;
  126. UPDATE `mac_history` SET mac = CONCAT( SUBSTRING(mac, 1, 2), ':', SUBSTRING(mac, 3, 2), ':', SUBSTRING(mac, 5, 2), ':', SUBSTRING(mac, 7, 2), ':', SUBSTRING(mac, 9, 2), ':', SUBSTRING(mac, 11, 2) ) WHERE mac IS NOT NULL AND LENGTH(mac) = 12;
  127. -- 2. Обновляем unknown_mac
  128. ALTER TABLE `unknown_mac` MODIFY COLUMN `mac` VARCHAR(17) DEFAULT NULL;
  129. UPDATE `unknown_mac` SET mac = CONCAT( SUBSTRING(mac, 1, 2), ':', SUBSTRING(mac, 3, 2), ':', SUBSTRING(mac, 5, 2), ':', SUBSTRING(mac, 7, 2), ':', SUBSTRING(mac, 9, 2), ':', SUBSTRING(mac, 11, 2) ) WHERE mac IS NOT NULL AND LENGTH(mac) = 12;
  130. -- remove default timestamp for dhcp event
  131. ALTER TABLE `user_auth` MODIFY COLUMN `dhcp_time` DATETIME NULL DEFAULT NULL;