migration.msql 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  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 acl ADD COLUMN `comment` VARCHAR(255);
  53. ALTER TABLE building ADD COLUMN `comment` VARCHAR(255);
  54. ALTER TABLE customers ADD COLUMN `comment` VARCHAR(255);
  55. ALTER TABLE devices ADD COLUMN `comment` VARCHAR(255);
  56. ALTER TABLE filter_instances ADD COLUMN `comment` VARCHAR(255);
  57. ALTER TABLE filter_list ADD COLUMN `comment` VARCHAR(255);
  58. ALTER TABLE group_list ADD COLUMN `comment` VARCHAR(255);
  59. ALTER TABLE ou ADD COLUMN `comment` VARCHAR(255);
  60. ALTER TABLE subnets ADD COLUMN `comment` VARCHAR(255);
  61. ALTER TABLE vendors ADD COLUMN `comment` VARCHAR(255);
  62. ALTER TABLE auth_rules ADD COLUMN `comment` VARCHAR(255);
  63. ALTER TABLE device_ports ADD COLUMN `comment` description VARCHAR(255);
  64. -- Теперь безопасно переименовываем `comment` → `description`
  65. ALTER TABLE acl CHANGE COLUMN `comment` description VARCHAR(250);
  66. ALTER TABLE building CHANGE COLUMN `comment` description VARCHAR(250);
  67. ALTER TABLE customers CHANGE COLUMN `comment` description VARCHAR(255);
  68. ALTER TABLE devices CHANGE COLUMN `comment` description VARCHAR(255);
  69. ALTER TABLE filter_instances CHANGE COLUMN `comment` description VARCHAR(200);
  70. ALTER TABLE filter_list CHANGE COLUMN `comment` description VARCHAR(250);
  71. ALTER TABLE group_list CHANGE COLUMN `comment` description VARCHAR(250);
  72. ALTER TABLE ou CHANGE COLUMN `comment` description VARCHAR(250);
  73. ALTER TABLE subnets CHANGE COLUMN `comment` description VARCHAR(250);
  74. ALTER TABLE user_list CHANGE COLUMN `fio` description VARCHAR(255);
  75. ALTER TABLE vendors CHANGE COLUMN `comment` description VARCHAR(255);
  76. ALTER TABLE auth_rules CHANGE COLUMN `comment` description VARCHAR(255);
  77. ALTER TABLE device_ports CHANGE COLUMN `comment` description VARCHAR(255);
  78. ALTER TABLE user_auth CHANGE COLUMN `comments` description VARCHAR(250);
  79. -- Добавляем поле mac_found в user_auth
  80. ALTER TABLE user_auth ADD COLUMN mac_found DATETIME NULL DEFAULT NULL;
  81. UPDATE user_auth SET mac_found = last_found WHERE last_found IS NOT NULL;
  82. -- type → уточнённые имена
  83. ALTER TABLE config_options CHANGE COLUMN `type` option_type VARCHAR(100) NOT NULL;
  84. ALTER TABLE dns_queue CHANGE COLUMN `type` operation_type VARCHAR(10) NOT NULL DEFAULT 'add';
  85. ALTER TABLE filter_list CHANGE COLUMN `type` filter_type SMALLINT NOT NULL DEFAULT 0;
  86. ALTER TABLE auth_rules CHANGE COLUMN `type` rule_type INT(11) NOT NULL;
  87. ALTER TABLE device_l3_interfaces CHANGE COLUMN `type` interface_type INT(11) NOT NULL DEFAULT 0;
  88. -- user_stats - add pkt counters
  89. ALTER TABLE `user_stats` ADD COLUMN `pkt_in` int(11) NOT NULL DEFAULT 0;
  90. ALTER TABLE `user_stats` ADD COLUMN `pkt_out` int(11) NOT NULL DEFAULT 0;
  91. ALTER TABLE `user_stats` ADD COLUMN `step` int(11) NOT NULL DEFAULT 3600;
  92. ALTER TABLE `user_stats_full` MODIFY COLUMN `pkt_in` int(11) NOT NULL DEFAULT 0;
  93. ALTER TABLE `user_stats_full` MODIFY COLUMN `pkt_out` int(11) NOT NULL DEFAULT 0;
  94. -- Set default value for ip to NULL
  95. ALTER TABLE `dhcp_log` MODIFY COLUMN `ip` varchar(15) NULL DEFAULT NULL;
  96. ALTER TABLE `dhcp_queue` MODIFY COLUMN `ip` varchar(15) NULL DEFAULT NULL;
  97. ALTER TABLE `mac_history` MODIFY COLUMN `ip` varchar(16) NULL DEFAULT NULL;
  98. ALTER TABLE `remote_syslog` MODIFY COLUMN `ip` varchar(15) NULL DEFAULT NULL;
  99. ALTER TABLE `user_auth` MODIFY COLUMN `ip` varchar(18) NULL DEFAULT NULL;
  100. -- Add ACL for disable user
  101. INSERT INTO acl (id, name, description_english, description_russian) VALUES (0, 'Disabled', 'User disabled', 'Пользователь отключен');
  102. -- queue_list
  103. ALTER TABLE queue_list CHANGE COLUMN `Download` `download` INT(11) NOT NULL DEFAULT 0;
  104. ALTER TABLE queue_list CHANGE COLUMN `Upload` `upload` INT(11) NOT NULL DEFAULT 0;
  105. -- speedup worklog
  106. ALTER TABLE `worklog` ADD INDEX `idx_ts` (`ts`);
  107. -- Исправление таблицы traffic_detail: src_ip/dst_ip → BIGINT
  108. ALTER TABLE `traffic_detail` MODIFY `src_ip` BIGINT NOT NULL DEFAULT 0, MODIFY `dst_ip` BIGINT NOT NULL DEFAULT 0;
  109. -- Исправление customers: убрать строковые 'NULL'
  110. ALTER TABLE `customers` MODIFY `login` VARCHAR(20) DEFAULT NULL, MODIFY `password` VARCHAR(255) DEFAULT NULL;
  111. -- 1. Переименовать `SN` → `sn` в таблице `devices`
  112. ALTER TABLE `devices` CHANGE COLUMN `SN` `sn` VARCHAR(80) DEFAULT NULL;
  113. -- 2. Переименовать `WikiName` → `wikiname` в таблице `user_auth`
  114. ALTER TABLE `user_auth` CHANGE COLUMN `WikiName` `wikiname` VARCHAR(250) DEFAULT NULL;
  115. -- mac_vendors: companyName → companyname
  116. ALTER TABLE `mac_vendors` CHANGE COLUMN `companyName` `companyname` VARCHAR(255) DEFAULT NULL;
  117. -- mac_vendors: companyAddress → companyaddress
  118. ALTER TABLE `mac_vendors` CHANGE COLUMN `companyAddress` `companyaddress` VARCHAR(255) DEFAULT NULL;
  119. -- device_ports: ifName → ifname
  120. ALTER TABLE `device_ports` CHANGE COLUMN `ifName` `ifname` VARCHAR(40) DEFAULT NULL;
  121. -- prepare group lieveling
  122. ALTER TABLE ou ADD COLUMN parent_id INT(11) DEFAULT NULL;
  123. -- change timestamp to datetime
  124. ALTER TABLE `ad_comp_cache` MODIFY COLUMN `last_found` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP();
  125. ALTER TABLE `devices` MODIFY COLUMN `locked_timestamp` DATETIME NULL DEFAULT CURRENT_TIMESTAMP();
  126. ALTER TABLE `variables` MODIFY COLUMN `clear_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP(), MODIFY COLUMN `created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP();