migration.msql 8.7 KB

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