Инсталлер иногда ошибается и не докачивает по таймауту некоторые обновления.
Клиент хочет переустановить плагин и делает единственное, что приходит ему в голову: Он нажимает кнопку "Удалить" и этим самым стирает все таблицы, связанные с плагином, стирает все настройки плагина.
Потом клиент пишет в поддержку с истерикой: "Я пять лет накапливал данные о клиентах, заказах итд, переустановил плагин и все данные пропали! Что делать?". Ведь его даже не предупреждает инсталлер о том, что все данные удалятся. Такими темпами не далеко и до судебных исков к разработчику плагина или к разработчику движка. И они будут правы.
Предрагаю сделать кнопку с не деструктивной переустановкой плагинов, а на кнопке удаления плагинов сделать предупреждение о том, что все связанные данные будут удалены.
5 комментариев
При удалении предупреждение об удалении данных все-таки показывается:
Согласен, что нужно сделать его более заметным. Сделаем в следующих обновлениях.
Но что вы имеете ввиду под "недеструктивной переустановкой плагинов"? Просто скачать последнюю версию кода, не трогая мета-обновления? Решит ли это хоть какую-то проблему? Скорее, приведет к рассинхрону БД и кода и непредсказуемым последствиям.
Я получил за последние 3 дня несколько обращений о неработоспособности плагина после обновления. Оказалось, что при обновлении не перезаписались некоторые файлы. Кто-то в Облаке, кто-то нет. Народ тратил время на то, чтобы настроить плагин. Я в свою очередь могу посоветовать лишь переустановить плагин с потерей всех данных.
Полагаю, что ITFrogs имеет ввиду обновление всего кода без изменения БД. Можно даже запустить метаобновления по-новой, рассинхрона быть не должно, потому что ВА настоятельно советует писать метаобновления так, чтобы их можно было безопасно запускать любое кол-во раз.
Ну мета-обновления по идее и не запустятся повторно: в БД записывается название файла (timestamp) последнего обновления, а потом при следующих проверках все обновления, раньше этого значения игнорируются.
Так что это не проблема вовсе: удаляем файлы, заливаем новые => метаобновления не выполнятся, т.к. в БД уже есть нужная запись.
Зависит от того, в какой момент в базу данных пишется таймстамп последнего обновления. Надеюсь это делается в конце работы скрипта метаобновления а не в начале.
Дело в том, что многие плагины существуют по много лет. Например мой плагин "Заметки о клиентах" установлен в большинстве магазинов уже много лет. Когда я последний раз делал на него обновление, оно затрагивало десятки тысяч записей в базе данных в некоторых магазинах и естественно не успевало отработать до конца. В этом случае помогло бы если бы была переустановка плагина с повторным запуском метаобновлений.
Ну а вообще конечно нужна нормальная установка с лонг экшеном а не вот это убожество, не достойное топового продукта на рынке екоммерс, которое должно уложить установку любых дополнений за 30 секунд и падает, если это время превышено.
Напишу немного грубо, но от души:
Студент Вася, который написал свой первый Hello World месяц назад уже бы давно сделал нормальное решение для обновлений. Перестаньте откладывать это на потом и сделайте уже наконец нормальный инсталлер. А то обновили иконки, переставили местами кнопочки, а самое главное оставили как было шесть лет назад.
Решается проблема другого рода: когда по ошибке остаются старые файлы (например, перенесли в другой каталог без соответствующего мета-обновления), которые иногда могут грузиться вместо новых.
А БД если уже по какой-то причине имеет некорректную структуру относительно последней версии файлов из Инсталлера, то в любом случае поможет лишь полная переустановка. И, наоборот, если БД правильная, а файлы - нет, то поможет решение ITFrogs.