Пока тут проблемы были с необновлением станций, не дергал, сейчас вроде как по той задаче решение есть, потому пишу про свою оказию.
Не могу серверную часть обновить до версии "03-07-2015 05:00:00".
Текущая версия залипла на "10-05-2015 05:00:00".
Причем понижение до резервной копии "06-05-2015 05:00:00" и обновление ее на "10-05-2015 05:00:00" происходит нормально, но до "03-07-2015 05:00:00" нет.
20150716 16:00:22 [ERR] [ Script ] Failed to run `upgrade_db([=[C:/Program Files/DrWeb Server/bin/drwcsd.exe]=])', details: unable to upgrade database, process exit code is 20
20150716 16:00:22 [ERR] [ Script ] Failed on `upgrade'
20150716 16:00:22 [DBG] [ Script ] Upgrade process exit code (upgrade -> master) is 1
Ну ладно, думаю... Раз пишет про проблему с базой, по инструкции починю ее, не в первый раз.
Нормально делается клон, подменяю файл, все запускается, web-интерфейс доступен, но... все равно не обновляется.
На всякий случай полный лог в приложении.
Подумал, что может как то релиз "03-07-2015 05:00:00" криво скачался, зашел в "Содержимое репозитория", удалил вообще там группу Сервер DrWeb - 20150703000000, перезакачался релиз, попробовал приподнять версию и проблема не разрешилась.
Прошу содействия в разборе проблемы, если это возможно.
1. updater_ops.log - затирается и нужная часть лога улетает в никуда даже с учетом того, что идет сохраненка в updater_ops.X.log.gz, потому пришлось ловить на паузах нужное место.
2. Нужное место в логе, похоже, такое:
Spoiler
20150717.135847.21 ERR [06100 1914] main [DB] Failed, Statement compile error: table oauth_clients already exists, 00.000, CREATE TABLE oauth_clients(\nid CHARACTER VARYING(255) NOT NULL, secret CHARACTER VARYING(255) NOT NULL, title CHARACTER VARYING(255) NOT NULL, description TEXT DEFAULT '', icon_url TEXT DEFAULT '', homepage TEXT DEFAULT '', created NUMERIC(17) NOT NULL, token_ttl INTEGER DEFAULT 3600 NOT NULL, code_ttl INTEGER DEFAULT 600 NOT NULL, user_id CHARACTER VARYING(255) DEFAULT '', client_type INTEGER DEFAULT 0 NOT NULL, client_status INTEGER DEFAULT 0 NOT NULL,\nPRIMARY KEY(id));
20150717.135847.21 ERR [06100 1914] main [DB] Unsuccessful SQL "upgrade DB" transaction, rolling back
20150717.135847.21 db3 [06100 1914] main [SqLite3/0] Statement "ROLLBACK"
20150717.135847.23 db3 [06100 1914] main [DB] Database has been freed but nobody wants it now
20150717.135847.23 db3 [06100 1914] main [DB] Thread has freed connection "upgrade DB"
20150717.135847.23 FTL [06100 1914] main Database upgrade error.
See the log file for details.
В переводе на человеческий язык: в базе таблица oauth_clients уже есть, попытка добавить ее еще разок неудачна, откат.
Смотрю что там за таблица. Вот что в ней:
Не знаю откуда она взялась в базе, но наличествует. То ли от предыдущих попыток обновлений, то ли еще почему.
Прошу рекомендации по методу исправления.
Варианты:
1. Дропнуть ее нафиг, пусть создастся по новой. Минусы - я не знаю есть ли связи с таблицей и как в этом sqlite поддерживается целостность данных, возможно поиметь ссылки на записи с битыми ключами.
2. Откатиться на архив, когда таблицы в базе не было (не факт что он у меня вообще есть такой) и обновиться с него.
Очень странно. Эти таблицы появились в 221 версии схемы, которая накатывается впервые в 0703 из релизных сборок. То есть в одной и той же транзакции должны были создаться эти таблицы и поменяться версия схемы с 220 на 221.
Очень странно. Эти таблицы появились в 221 версии схемы, которая накатывается впервые в 0703 из релизных сборок. То есть в одной и той же транзакции должны были создаться эти таблицы и поменяться версия схемы с 220 на 221.
Ну... Как то и у меня они появились, не знаю как но почему то без фиксирования того что версия сервера стала новой. Напрямую в базе я там ничего не трогал, плагин для Firefox для того чтобы посмотреть что это за проблемная таблица поставил всего пару часов назад.
Ну так я сразу и говорил, что застрял на "10-05-2015 05:00:00" и не могу продвинуться дальше. От 0703 в базе почему то наличествует одна из таблиц, которую я просто бы грохнул и попробовал обновиться, ток хотел проконсультироваться по связям с другими таблицами базы. А то что это не 0703, это точно, т.к. в логах обновления есть куча сведений о копировании всевозможных файлов в рабочую папку серверной части и потом откат их из за неуспеха реструктуризации базы данных.