Доброго всем времени суток.
Без проблем. Обновление сковырнулось на выполнении скрипта из архива 00005001-00005002.ops.c.tgz, при его выполнении выскочила ошибка
Код:
==== ukmclient-upgrade.sql execution started
ERROR 1048 (23000) at line 97 in file: 'ukmclient-upgrade.sql': Column 'domain_id' cannot be null
@domain_id := domain_id
9
@domain_id := domain_id
0
@domain_id := `domain_id`
11
ERROR
2013/02/15 17:56:33|
2013/02/15 17:56:33|---- ERROR ----
2013/02/15 17:56:33|
2013/02/15 17:56:33|ERROR: Failed to process package 00005001-00005002.ops.c.tgz. up.sh failed
2013/02/15 17:56:33|==== StartStopPrograms(errupdate) begin
2013/02/15 17:56:33| Starting services
2013/02/15 17:56:33|Trying to start service "mysql"
Печально но в таблице srv_trm_domain_tables отсутствовала запись 'gds_bs_goods', значение domain_id для gds_bs_goods нужно будет взять на ukmserver в оналогичной таблице.
Но как выяснилось до этого момента скрпит наполовину отработал и успел создать несколько записей, таблиц, столбцов и т д....
Пришлось идти от противного взял скрипт из обновления и выполнял построчно попутно вычислял чего он успел сделал.
в итоге получился вот такой скриптец, который откатывает изменения.
Код:
drop table srv_external_links;
drop table trm_in_appeal_reason;
drop table trm_in2_appeal_reason;
drop table gds_bs_goods_journal;
drop table gds_bs_delivery_proc;
drop table trm_in_disc_std_list_basket;
drop table trm_in2_disc_std_list_basket;
drop table trm_out_webmoney_sequence;
delete from srv_trm_domain_tables where name='srv_external_links';
delete from srv_trm_domain_tables where name='trm_in_appeal_reason';
delete from srv_trm_domain_tables where name='trm_in2_appeal_reason';
delete from srv_trm_domain_tables where name='gds_bs_goods_journal';
delete from srv_trm_domain_tables where name='gds_bs_delivery_proc';
delete from srv_trm_domain_tables where name='trm_in_disc_std_list_basket';
delete from srv_trm_domain_tables where name='trm_in2_disc_std_list_basket';
delete from srv_trm_domain_tables where name='trm_out_webmoney_sequence';
delete from srv_trm_domain_tables where name='trm_line_oper_day';
ALTER TABLE trm_line_acceptance_items DROP COLUMN title;
ALTER TABLE trm_in_defect DROP COLUMN title;
ALTER TABLE trm_in2_defect DROP COLUMN title;
ALTER TABLE trm_line_acceptance_items DROP COLUMN appeal_reason;
ALTER TABLE trm_line_delivery DROP COLUMN shipment;
ALTER TABLE local_srt_storage DROP COLUMN shipment;
ALTER TABLE trm_line_delivery DROP COLUMN invoice_amount;
ALTER TABLE trm_line_oper_day DROP COLUMN version;
ALTER TABLE trm_line_oper_day DROP COLUMN deleted;
ALTER TABLE trm_line_delivery_items DROP COLUMN title;
ALTER TABLE trm_in_bp DROP COLUMN remains;
ALTER TABLE trm_in2_bp DROP COLUMN remains;
ALTER TABLE trm_in_currency DROP COLUMN monetary_unit_multiplier;
ALTER TABLE trm_in2_currency DROP COLUMN monetary_unit_multiplier;
RENAME TABLE `trm_line_oper_day`TO `local_oper_day`;
Но этого мало нужно создать в директории файл флаг
UPDATE_CONTINUED говорит о том что обновление нужно продолжить, а не запускать заново
UPDATE_PACKAGE_IN_PROGRESS указывается имя пакета с которого нужно продолжить обновление, название нужно указать внутри первой строкой.
UPDATE_IN_PROGRESS указывает на то, что выполняется обновление.
после этого заходим через SSH на кассу и благополучно запускаем скрипт на на выполнение обновления
/usr/local/ukmclient/ukmupman/
./ukmupman.sh
смотрим результат в логах.
Пока вроде все, касса обновилась. Наблюдаю теперь за поведением все ли корректно прошло.
И ещё момент, если после всех монипуляций у вас касса не стартовала автоматический, то есть на УКМ сервере весит в статусе обновление, нужно стартануть её в ручную. Зайти на WEB кассы включить авто запуск, стартрануть ukmclient;
Вот в принципе и всё. Касса корректно обновилась и работает.
Ну и рецепт чтоб не оказаться в такой ситуации как я:
1. Нужно проверить наличие строки gds_bs_goods в таблице srv_trm_domain_tables.
2. если её там нет добавляем Insert into srv_trm_domain_tables values (0,domain_id, 'gds_bs_goods',0,0); где domain_id это значение такое же как на Ukmserver.
После этого всё проходит нормально, по крайней мере у меня все кассы обновились без проблем.
Но как говорится не говори ГОП пока не перепрыгнешь.