Форум OlegON > > >

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

20.01.2020 18:40


04.10.2017 10:38
Kryukov
 
При обновлении на одном сервере с 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 Кб, 17 просмотров)
04.10.2017 11:45
vdm
 
Цитата:
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
Kryukov
 
там не разобраться ...
отписал в поддержку молчат как рыбы
Вложения
Тип файла: zip ukmserver-upgrade.sql.zip (35.5 Кб, 23 просмотров)
04.10.2017 12:42
vdm
 
В trm_in_item_property_values есть дубликаты с т.з. новой структуры таблицы.
Если ее содержимое у вас на кассах не используется, очисти полностью.
04.10.2017 13:04
andron_dd
 
я вычислял кривые записи запросом. Если запрос не пустой, то все эти записи подвергались уничтожению:

SQL код:
select ts.store_idtp.cash_idtps.iptp.numberts.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=AND tp.deleted=AND tp.active AND tps.deleted=AND tps.state=AND tps.deleted=AND ts.store_id=[B]ВАШ STORE_ID[/BORDER BY tp.number
04.10.2017 13:07
andron_dd
 
прошу прощенья не тот запрос добавил, вот верный:
SQL код:
select pv.item_idpv.nomenclature_idpv.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_idis null 
04.10.2017 13:56
Kryukov
 
можно по по поборней ... не пойму что там именно косяк... простая табличка с составами ...
04.10.2017 14:54
andron_dd
 
все достаточно просто при обновлении в 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
ctarosta
 
при обновлении возникла такая же ошибка в таблице trm_in_item_property_values

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

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

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