С трудом, но все же получилось выполнить обновление до версии 77сп1, продираясь сквозь ошибки. Пока только на копии реального сервера, обновление боевого УКМ на следующей неделе.
В процессе обновления столкнулись со следующими проблемами:
1) Долгоиграющие запросы на обновление (около 3 часов каждый)
DELETE FROM cnv_table_deleted WHERE table_name = 'trm_in_nopdf';
DELETE FROM cnv_table_deleted WHERE table_name = 'trm_in2_nopdf';
- пришлось отключить, иначе не укладываемся в регламентное время проведения работ
2) Осколки данных в таблицах: trm_in_item_property_values, trm_in2_item_property_values из-за которых не мог быть создан primary key и обновление падало с ошибкой
ERROR 1062 (23000) at line 178 in file: 'ukmserver-upgrade.sql': Duplicate entry '1-0-$ukm$' for key 'PRIMARY'
Чтобы избежать возникающих ошибок, пришлось внести изменения в скрипт и пересобрать пакет обновления.
Все изменения вносились в скрипт
ukmserver-upgrade.sql в пакете
00077000.dat.s.zip и
00077000.dat.c.tgz
Были сделаны следующие изменения:
1) закомментированы долгие запросы (будут выполнены после обновления, в рабочем порядке)
SQL код:
-- DELETE FROM cnv_table_deleted WHERE table_name = 'trm_in_nopdf';
-- DELETE FROM cnv_table_deleted WHERE table_name = 'trm_in2_nopdf';
2) добавлены запросы на удаление осколков данных:
SQL код:
DELETE trm_in_item_property_values
FROM trm_in_item_property_values
LEFT JOIN trm_in_items ON trm_in_items.id = trm_in_item_property_values.item_id AND trm_in_items.nomenclature_id=trm_in_item_property_values.nomenclature_id
WHERE trm_in_items.id IS NULL OR trm_in_item_property_values.`item_id` IS NULL;
SQL код:
DELETE trm_in2_item_property_values
FROM trm_in2_item_property_values
LEFT JOIN trm_in2_items ON trm_in2_items.id = trm_in2_item_property_values.item_id AND trm_in2_items.nomenclature_id=trm_in2_item_property_values.nomenclature_id
WHERE trm_in2_items.id IS NULL OR trm_in2_item_property_values.`item_id` IS NULL;
Спасибо за основу запроса
andron_dd
После пересборки пакета и обновления md5 сумм, обновилось без ошибок.
P.S. Не забываем про пакеты для кассы, их тоже необходимо исправить.