|
<?php defined('SYSPATH') or die('No direct script access.');
|
|
/*
|
|
* This file is part of open source system FreeNetIS
|
|
* and it is released under GPLv3 licence.
|
|
*
|
|
* More info about licence can be found:
|
|
* http://www.gnu.org/licenses/gpl-3.0.html
|
|
*
|
|
* More info about project can be found:
|
|
* http://www.freenetis.org/
|
|
*
|
|
*/
|
|
|
|
|
|
/**
|
|
* Creates port number from their names
|
|
*
|
|
* @author Michal Kliment
|
|
* @return boolean
|
|
*/
|
|
function upgrade_sql_1219_after()
|
|
{
|
|
$port_model = new Port_Model();
|
|
|
|
$ports = $port_model->find_all();
|
|
|
|
foreach ($ports as $port)
|
|
{
|
|
$arr = explode(" ", $port->name);
|
|
$nr = array_pop($arr);
|
|
|
|
if (is_numeric($nr))
|
|
{
|
|
$port->port_nr = $nr;
|
|
$port->save();
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
$upgrade_sql[1219] = array
|
|
(
|
|
/* Drops old tables */
|
|
|
|
"ALTER TABLE `ifaces` ADD `type` INT( 11 ) NOT NULL AFTER `id` , ADD INDEX ( `type` );",
|
|
|
|
"UPDATE ifaces i, segments s SET i.type = 1 WHERE i.segment_id = s.id AND medium_id = 2;",
|
|
|
|
"UPDATE ifaces i, segments s SET i.type = 2 WHERE i.segment_id = s.id AND medium_id = 3;",
|
|
|
|
"CREATE TABLE `wireless_ifaces` (
|
|
`id` INT( 11 ) NOT NULL AUTO_INCREMENT ,
|
|
`iface_id` INT( 11 ) NOT NULL ,
|
|
`ssid` VARCHAR( 50 ) COLLATE utf8_czech_ci DEFAULT NULL ,
|
|
`wmode` INT( 11 ) NOT NULL ,
|
|
`norm` INT( 11 ) NOT NULL ,
|
|
`frequence` INT( 11 ) DEFAULT NULL ,
|
|
`channel` INT( 11 ) DEFAULT NULL ,
|
|
`antenna` INT( 11 ) NOT NULL ,
|
|
`polarization` INT( 11 ) NOT NULL ,
|
|
PRIMARY KEY ( `id` )
|
|
) ENGINE = INNODB DEFAULT CHARSET = utf8 COLLATE = utf8_czech_ci;",
|
|
|
|
"INSERT INTO `wireless_ifaces` SELECT * FROM `wireless_settings` ;",
|
|
|
|
"ALTER TABLE `wireless_ifaces`
|
|
DROP `ssid`,
|
|
DROP `norm`,
|
|
DROP `frequence`,
|
|
DROP `channel`,
|
|
DROP `polarization`;",
|
|
|
|
"UPDATE wireless_ifaces wi SET wmode = wmode - 44;",
|
|
|
|
"UPDATE wireless_ifaces SET antenna = antenna - 50;",
|
|
|
|
"RENAME TABLE `wireless_settings` TO `wireless_segments`;",
|
|
|
|
"ALTER TABLE `wireless_segments` ADD `segment_id` INT( 11 ) NOT NULL AFTER `id`, ADD INDEX ( `segment_id` );",
|
|
|
|
"UPDATE wireless_segments ws, ifaces i SET ws.segment_id = i.segment_id WHERE ws.iface_id = i.id;",
|
|
|
|
"ALTER TABLE `wireless_segments` DROP FOREIGN KEY `wireless_segments_ibfk_1`;",
|
|
|
|
"ALTER TABLE `wireless_segments`
|
|
DROP `iface_id`,
|
|
DROP `wmode`,
|
|
DROP `antenna`;",
|
|
|
|
"UPDATE wireless_segments ws,
|
|
(SELECT 1 AS new, 47 AS old UNION SELECT 2 AS new, 48 AS old UNION SELECT 3 AS new, 49 AS old UNION SELECT 4 AS new, 50 AS old UNION SELECT 5 AS new, 61 AS old) n
|
|
SET ws.norm = n.new
|
|
WHERE ws.norm = n.old;",
|
|
|
|
"UPDATE wireless_segments ws,
|
|
(SELECT 1 AS new, 54 AS old UNION SELECT 2 AS new, 55 AS old UNION SELECT 3 AS new, 56 AS old UNION SELECT 4 AS new, 63 AS old UNION SELECT 5 AS new, 64 AS old) p
|
|
SET ws.polarization = p.new
|
|
WHERE ws.polarization = p.old;",
|
|
|
|
"ALTER TABLE `wireless_segments` ADD `channel_width` INT( 11 ) NULL AFTER `channel`;",
|
|
|
|
"ALTER TABLE `ports` ADD `port_nr` INT( 11 ) NULL AFTER `segment_id`, ADD INDEX ( `port_nr` );",
|
|
|
|
"ALTER TABLE `wireless_ifaces` ADD INDEX ( `iface_id` );",
|
|
|
|
"ALTER TABLE `wireless_ifaces` ADD FOREIGN KEY ( `iface_id` ) REFERENCES `ifaces` (`id`) ON DELETE CASCADE ;",
|
|
|
|
"ALTER TABLE `wireless_segments` ADD FOREIGN KEY ( `segment_id` ) REFERENCES `segments` (`id`) ON DELETE CASCADE ;",
|
|
|
|
"INSERT INTO wireless_ifaces
|
|
SELECT NULL, i.id, 2, NULL
|
|
FROM devices d
|
|
JOIN ifaces i ON i.device_id = d.id
|
|
WHERE d.type = 8 AND i.type = 1 AND i.id NOT IN (SELECT iface_id FROM wireless_ifaces);",
|
|
|
|
"INSERT INTO wireless_ifaces
|
|
SELECT NULL, i.id, 1, NULL
|
|
FROM devices d
|
|
JOIN ifaces i ON i.device_id = d.id
|
|
WHERE d.type = 62 AND i.type = 1 AND i.id NOT IN (SELECT iface_id FROM wireless_ifaces);",
|
|
);
|
|
|
|
?>
|