Откат к предидущей версии плагина если обнова будет неудачной Есть решение
У нас ранне была проблема с одним плагином после перехода на свой сервак. Если установить обнову этому плагину, то он слетал. Сейчас хочу обновить так как есть в работе плагина ошибка. Если обновление опять будет неудачное, как вернуть после этого старую версию плагина?
10 ответов
Самый простой и надежный способ - сесть ночью, сделать полный бекап сайта, обновить плагин, протестировать и в случае неудачи - полностью восстановить сайт из недавно сделанного бекапа.
Если есть доступ к серверу, то можно всё целиком и не откатывать. Плагин при обновлении сохраняет свою предыдущую версию в wa-data/protected/wa-installer/backup... Оттуда её легко вытащить. Ну или как минимум сохранить файлы плагина в состоянии До вручную.
Есть плагины, которые ещё и вносят изменения в базу данных при установке, но это тоже можно выяснить точечно. Т.е. сохранить ту часть базы, которая имеет к этому плагину отношение напрямую в состоянии До и После.
Это для случая, если полный бекап окажется очень тяжелым и трудоемким делом, когда база большая, товаров и заказов много и сайт с большой историей в несколько лет работы.
Опять же всегда можно выйти на связь с разработчиком и всё выяснить. Вдруг он и поможет.
Варианты есть, но для тонкой операции нужна определенная квалификация.
Лично для себя предпочитаю в таких случаях производить именно точечные действия более аккуратными инструментами, чем полный бекап и тотальный откат.
файлы то ты откатишь, а вот базу нет
Почему? Все правильно:
Сложно отследить backside эффекты/действия - точечный откат может нарушить целостность данных.
На то Вы и разработчик, а вот пользователи - нет.
Да, всё так. Надо понимать что делаешь и для чего.
Идея для плагина... "Безопасное обновление" =) Благо добрая половина требуемого функционала уже есть по разным продуктам...
Вы видимо не до конца понимаете что такое backside эффект: действия плагина могут вызывать каскадный вызов других плагинов/приложений.
На определение всех взаимосвязей может уйти несколько часов, а бекап базы делается за пару минут.
"Самый простой и надежный способ" - сделать копию сайта и на ней протестировать работу, отрубив перед этим все плагины передающие данные сторонним сервисам.
подобного плагина не может существовать в принципе - свой сайт Вы еще можете откатить, но как Вы откатите данные переданные в сторонние сервисы? кроме того баги могут быть не столь очевидными (вроде неточности в расчете скидок) и всплывут далеко не сразу.
Естественно. Только эти действия достаточно просто идентифицируются (не их суть, а как минимум их наличие в потенциальном обновлении). И достаточно просто предупредить об этом пользователя, чтобы он сам принял то или иное решение. Но порядка 80% ситуаций с обновлениями можно было б покрыть. Сложные метаобновления - это скорее исключение чем правило.
такая себе идея: "Предупреждаем Вас, что данное обновление может содержать ошибки и вызвать цепную реакцию, приводящую к недееспособности сайта! А может и нет - мы точно не знаем."
Плагин "Безопасное обновление" переименовывается "Безопасное обновление в 80% ситуаций". Каждому купившему плагин сегодня, икона Николая-чудотворца в подарок!
Я сделал по другому. Создал дубликат админки по вот этой инструкции: https://support.webasyst.ru/40281/test-website/
И протестил на ней. Может кому пригодиться