Форум OlegON > Программы и оборудование для автоматизации торговли > Кассовые программы > УКМ-4

ошибка обновления укм76 на укм77 : Duplicate entry '2-0-Sys.Composition' for key 'PRIMARY' : УКМ-4

25.11.2024 1:04


04.10.2017 10:38
При обновлении на одном сервере с 76 на 77 ошибка

вот
2017/10/04 09:21:41|Creating C:\Program Files\ukmserver\ukmupman\temp_unpack
2017/10/04 09:21:41|"C:\Program Files\ukmserver\ukmupman\openpack.cmd" ""C:\Program Files\ukmserver\ukmupman\update\00077000.dat.s.zip" "C:\Program Files\ukmserver\ukmupman\temp_unpack"" starting
2017/10/04 09:21:41|"C:\Program Files\ukmserver\ukmupman\openpack.cmd" "C:\Program Files\ukmserver\ukmupman\update\00077000.dat.s.zip" "C:\Program Files\ukmserver\ukmupman\temp_unpack" finished
2017/10/04 09:21:41|
2017/10/04 09:21:41|Checking for self update directory _selfupdate_win32_
2017/10/04 09:21:41|_selfupdate_win32_ not found
2017/10/04 09:21:41|"C:\Program Files\ukmserver\ukmupman\temp_unpack\up.cmd" "" starting
2017/10/04 09:21:46|
2017/10/04 09:21:46|---- ERROR ----
2017/10/04 09:21:46|
2017/10/04 09:21:46|ERROR: Failed to process package 00077000.dat.s.zip. "C:\Program Files\ukmserver\ukmupman\temp_unpack\up.cmd" failed
2017/10/04 09:21:46|==== StartStopPrograms(errupdate) begin
2017/10/04 09:21:46| Starting services

Полный лог в приложении
Вложения
Тип файла: zip log.zip (186.8 Кб, 27 просмотров)
04.10.2017 11:45
Цитата:
ERROR 1062 (23000) at line 178 in file: 'ukmserver-upgrade.sql': Duplicate entry '2-0-Sys.Composition' for key 'PRIMARY'
Достать ukmserver-upgrade.sql, смотреть строку в которой ошибка и табличку в БД.
04.10.2017 12:02
там не разобраться ...
отписал в поддержку молчат как рыбы
Вложения
Тип файла: zip ukmserver-upgrade.sql.zip (35.5 Кб, 35 просмотров)
04.10.2017 12:42
В trm_in_item_property_values есть дубликаты с т.з. новой структуры таблицы.
Если ее содержимое у вас на кассах не используется, очисти полностью.
04.10.2017 13:04
я вычислял кривые записи запросом. Если запрос не пустой, то все эти записи подвергались уничтожению:

SQL код:
select ts.store_id, tp.cash_id, tps.ip, tp.number, ts.nomenclature_id from trm_in_store ts 
                         LEFT JOIN trm_in_pos tp ON (tp.store_id = ts.store_id ) 
                         LEFT JOIN trm_out_pos_state tps ON (tps.cash_id = tp.cash_id)
                         WHERE ts.deleted=0 AND tp.deleted=0 AND tp.active = 1 AND tps.deleted=0 AND tps.state=1 AND tps.deleted=0 AND ts.store_id=[B]ВАШ STORE_ID[/B] ORDER BY tp.number; 
04.10.2017 13:07
прошу прощенья не тот запрос добавил, вот верный:
SQL код:
select pv.item_id, pv.nomenclature_id, pv.deleted from trm_in_item_property_values pv left join trm_in_items ti ON ti.id = pv.item_id AND ti.nomenclature_id=pv.nomenclature_id WHERE ti.id is NULL OR pv.`item_id` is null 
04.10.2017 13:56
можно по по поборней ... не пойму что там именно косяк... простая табличка с составами ...
04.10.2017 14:54
все достаточно просто при обновлении в trm_in_items добавляется новое поле unique_item_id. Из trm_in_item_property_values удаляется поле item_id и добавляется новое поле unique_item_id. Все бы не плохо но в trm_in_item_property_values создается PRIMARY KEY (`nomenclature_id`,`unique_item_id`,`property_code`), вместо PRIMARY KEY (`nomenclature_id`,`item_id`,`property_code`). И здесь как раз может появиться ошибка указанная выше. Получается так, что в таблице trm_in_items товары могут быть удалены, а в trm_in_item_property_values остались какие-то осколки данных. Запросом выше я вычислял эти осколки. После чистки все доехало без проблем.

это запрос на котором все качественно складывается:
ALTER TABLE trm_in_item_property_values
DROP COLUMN item_id,
CHANGE COLUMN unique_item_id unique_item_id BIGINT(20) NOT NULL ,
DROP PRIMARY KEY,
ADD PRIMARY KEY (nomenclature_id, unique_item_id, property_code);
05.10.2017 04:26
при обновлении возникла такая же ошибка в таблице trm_in_item_property_values

Техподдержка посоветовала: "Если данная таблица не используется, то можно выставить всем записям deleted=1, чтоб данные удалились с нижестоящих узлов. Затем после репликации очистить эту таблицу. Конечно это неполноценное решение, а лишь временная мера. Написали разработчикам, ждем обратной связи. "
05.10.2017 07:26
Цитата:
ctarosta при обновлении возникла такая же ошибка в таблице trm_in_item_property_values

Техподдержка посоветовала: "Если данная таблица не используется, то можно выставить всем записям deleted=1, чтоб данные удалились с нижестоящих узлов. Затем после репликации очистить эту таблицу. Конечно это неполноценное решение, а лишь временная мера. Написали разработчикам, ждем обратной связи. "
Обновляете с 76 на 77? или с 76 на 77+сп1? в ответе ТП не было инфо об исправлении этой проблемы в сп2? (так, случайно)
Часовой пояс GMT +3, время: 01:04.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.