Посредством лома и какой-то матери перенес данные из таблиц версии 1.х в таблицы версии 2.х. После удаления созданной по шаблону accountinfo_config, нормально отработала конверсия старых данных accountinfo в новый формат (вот и пригодится рассмотренный чуть ранее view).
Пошел проверять настройки подсетей, вроде всё выглядит гладко:
Однако... Однако при проверке вылезло:
вот те раз! А где ж ID 120000, который прекрасно виден в предыдущей таблице? А нету!
Смотрим таблицу subnet:
В ней есть. Так в чем же дело? Дело в том, что теперь поле id вставляется, уж не знаю, с какого перепуга, из таблицы config, и если в ней такого id-а нет, то и в настройках подсети он не появится - выбрать можно только из тех, что прописаны в конфиге.
Да и фиг с вами! Давайте импортировать?
Вбил пару id-ов вручную, чтобы узнать формат.
Всё ясно. Опять поля нумеруются последовательно. Будем писать хитровыделанный скрипт, который добавит существующие id-ы из subnet в config.
Весь процесс подготовки расписывать не буду, вот конечный результат:
Пошел проверять настройки подсетей, вроде всё выглядит гладко:
Однако... Однако при проверке вылезло:
вот те раз! А где ж ID 120000, который прекрасно виден в предыдущей таблице? А нету!
Смотрим таблицу subnet:
select netid,name,id from subnet; +----------------+---------------------------------------------------+--------+ | netid | name | id | +----------------+---------------------------------------------------+--------+ | 172.21.120.0 | Управление: dynDHCP (256)-1 | 120000 |
В ней есть. Так в чем же дело? Дело в том, что теперь поле id вставляется, уж не знаю, с какого перепуга, из таблицы config, и если в ней такого id-а нет, то и в настройках подсети он не появится - выбрать можно только из тех, что прописаны в конфиге.
Да и фиг с вами! Давайте импортировать?
Вбил пару id-ов вручную, чтобы узнать формат.
select * from config where name rlike 'id_ipdiscover'; +-----------------+--------+--------+----------+ | NAME | IVALUE | TVALUE | COMMENTS | +-----------------+--------+--------+----------+ | ID_IPDISCOVER_1 | 1 | 101 | NULL | | ID_IPDISCOVER_2 | 2 | 107 | NULL | +-----------------+--------+--------+----------+
Всё ясно. Опять поля нумеруются последовательно. Будем писать хитровыделанный скрипт, который добавит существующие id-ы из subnet в config.
Весь процесс подготовки расписывать не буду, вот конечный результат:
-- счетчик: начинаем отсчет с последнего известного ИД-а -- по умолчанию считаем, что хотя бы один мы уже занесли set @currid:=(select max(config.ivalue) from ocsweb.config where config.name rlike 'id_ipdiscover');
-- выбираем псевдостолбцы из псевдотаблицы insert into config select confnewNAME,confnewid,NetID,'' from ( SELECT id as NetID, -- чтобы не делать кучу селектов для следуюших проверок, запоминаем в переменной @ival:=(select ivalue from config where config.name rlike 'id_ipdiscover' and config.tvalue = id) as 'confID', -- если ИДа для такой сети нет, то увеличиваем счетчик (ifnull(@ival, @currid:=@currid + 1)) as confNewID, -- снова: если ИДа нет, то формируем новое значение параметра -- счетчик уже увеличен на предыдущем шаге (if(not isnull(@ival), NULL, (concat('ID_IPDISCOVER_', @currid)))) as confNewNAME FROM ocsweb.subnet) as lookforer -- выбираем только те, которых еще нет в конфиге where not isnull(confnewNAME);
Комментариев нет:
Отправить комментарий
Пожалуйста, воздержитесь от грубостей и персональных нападок.
Я не против матерщины, но она должна быть уместной и использоваться для выражения эмоций, а не в качестве основного средства выражения мыслей.