Projekt

Obecné

Profil

<?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);",
);

?>
(16-16/162)