Ошибки при обновлении. Почему возникают?

Каким образом не прописываются обновления в базу данных?

#1 30 января 2020 в 21:42
На форуме (да и не только на форуме) очень много похожих тем.
Проблемы приблизительно одинакового свойства:

Ошибка в запросе БД: Неизвестный столбец 'i.********' в 'where clause'

То есть при обновлении у человека почему-то не срабатывает добавление столбцов в базу данных.
Сколько не пробовал повторить у себя подобные ошибки — не получается.
А теперь внимание, вопрос!
Как людям удается добиться такого эффекта?
Неправильные права на папки и файлы? Глюки хостинга? Неправильное выполнение инструкций по обновлению? Просто руки из брюки?
Что можно посоветовать несчастным, у которых не обновилась база?
#2 30 января 2020 в 22:06
Да уж, действительно. Вопрос актуальный. Понимаю недоумение ТС, но я тоже не понимаю, как можно добиться такого эффекта) scratch
#3 30 января 2020 в 22:38

Как людям удается добиться такого эффекта?

Ris
О-о! Это специалисты "высшего полета"! laugh
Это конечно шутка, но в ней есть и доля истины… проблем может быть много и разных
1. Мускул мускулу рознь и могут быть не стыковки, в том числе и при неправильных настройках
2. База изначально может иметь ошибки
3 Сторонние компоненты, которые могут иметь конфликт с новой версией
4. При удалении старых дополнений надо чистить и поля, которые вносятся в общие таблицы. Автоматом удаляются только свои таблицы, а внедреные поля нет.
5. Бывают виноваты и хостинги, особенно те, у которых по какой то причине неустойчивая связь скрипта с базой данных. Это в свою очередь может быть вызвано и внутренними проблемами сайта.

Что можно посоветовать несчастным, у которых не обновилась база?

Ris
Сразу и безоговорочно, могу посоветовать: "Учите мат-часть!" Я сам не профи, и многого не знаю, но стараюсь разбираться, Гуглю интернет, пробую задаю вопросы. И главное, не боюсь влазить в базу и пробовать собственными силами исправить. Бекап сайта с базой всегда позволит все вернуть.
1. Часть проблем сразу отпадает опцией конфига 'clear_sql_mode' => 1, У многих еще стоит 0. Это позволит обойти не стыковки в базах, за счет отказа от строгих параметров.
2. Обязательно сделать все возможные проверки базы данных — оптимизацию, восстановление
3. Вспомнить, какие дополнения удаляли и по запросам в инсталяционном файле install.sql проверить, не внедрялись ли какие то поля в таблицы базы данных и все лишнее удалить. Периодически проверяйте результат и сохраняйте достигнутые результаты (бекапте базу).
4. Если все слишком запутано и есть понимание, заново проинсталлируйте скрипт сайта с копированием в него скриптов нужных вам дополнений. База должна остаться старая. Она вам ошибками покажет чего не хватает (а оно есть в базе). Это и удаляйте. В общем рутинный, но очень эффективный путь приведения сайта в здоровое состояние.
Все что написано, пройдено мной лично и неоднократно! shock
#4 30 января 2020 в 22:58
Ris, тут, как я понимаю, проблема даже не в том, что возникает ошибка. А в том, что получив её, человек даже сделать что-то не пытается.
Не пытается вставить текст ошибки в Гугл переводчик, чтобы понять, о чём тут вообще речь.
Не пытается тот же текст ошибки ввести в поиск того же Гугла.
Не пытается сравнить таблицу на демо сайте установленном локально и на хостинге, чтобы увидеть, что в таблице на хостинге почему-то нет столбца.
Зачем, ведь есть Ris?
Если бы человек проделал всю эту работу, то и его вопрос звучал бы по-другому и ваше отношение к нему было бы другим.
#5 30 января 2020 в 23:17


Если бы человек проделал всю эту работу, то и его вопрос звучал бы по-другому и ваше отношение к нему было бы другим.

@IamB
Не всегда есть понимание, даже после переводчика! Поэтому не надо всех представлять тупыми лентяями. laugh
Сам неоднократно заходил в тупик, и если бы не советы Risa и других членов сообщества, то я бы сейчас не был таким "умным" и не писал посты из своего опыта!
#6 31 января 2020 в 07:38

Как людям удается добиться такого эффекта?

Ris
Есть вероятность, что типов контента у пользователей много, а времени на выполнение запроса выделено мало, поэтому не все типы контента успевают обновится и выпадает ошибка при обновлении.
Либо пропускают промежуточные версии при ручной установке.
#7 31 января 2020 в 08:43
Бывают ошибки в БД, потому что в предустановленных значениях полей не понимает символы "(", "" и тд.
#8 31 января 2020 в 22:58

Как людям удается добиться такого эффекта?

Ris
С чтением инструкции проблема. Одни не ставят пакеты через админку, считая, что "и так сойдёт", другие, если обновление завершилось с ошибкой, о чём CMS сообщает, тоже считают, что "и так сойдёт, на форуме напишу что ничего не работает, авось кто догадается".

Бывают ошибки в БД, потому что в предустановленных значениях полей не понимает символы "(", "" и тд .

@noname
А бывает проблема с обострением.
#9 1 февраля 2020 в 10:49
Бывает, за Вас гуглить никто не будет.
#10 1 февраля 2020 в 18:41

С чтением инструкции проблема. Одни не ставят пакеты через админку, считая, что "и так сойдёт", другие, если обновление завершилось с ошибкой, о чём CMS сообщает, тоже считают, что "и так сойдёт, на форуме напишу что ничего не работает, авось кто догадается".

Fuze
То есть можно рекомендовать всем, у кого не хватает полей в таблицах, просто обновиться вручную еще раз, но сделав всё по инструкции?
#11 1 февраля 2020 в 20:14

То есть можно рекомендовать всем, у кого не хватает полей в таблицах, просто обновиться вручную еще раз, но сделав всё по инструкции?

Ris
Конечно. Пакет обновления учитывает, если даже некоторые столбцы были добавлены вручную.
При этом я всегда мониторю комментарии релиза, и если какая-либо ошибка реально есть, она исправляется и об этом сообщается.
По сути, нужно просто быть внимательным при обновлении. Это всё же не обновление приложения на мобильном устройстве.
#12 1 февраля 2020 в 20:51

Это всё же не обновление приложения на мобильном устройстве.

Fuze
Так разработчики приложений для мобильных устройств тоже так говорят

Это всё же не обновление версии InstantCMS2. Тут мозги нужно включать. laugh
#13 1 февраля 2020 в 23:27
Я вот тоже не пойму...
Сколько раз обновлялся (еще с 2.8), проблем нет (тьфу-тьфу-тьфу)).

На локалке попробовал тестово обновить на 2.13 тоже вроде нормально.

Единственно в фильтре загрузка начала крутится, разбираться не стал (так как просто тестил обновление) взял из релиза папку templates/default перезали, все стало нормально...

НО: я всегда обновляю несколько сайтов за раз, рутинная работа, но что бы таблиц не хватало или глюки- баги никогда не было.

Поэтому всегда читая комменты к релизам, задаю (себе) вопрос, что это у людей, на самом деле так глючит, или правки тела движка, или сторонние разработки (хотя у меня они тоже есть) кривые, или действительно не внимательность?

Файлы шаблонов последнее время мержу сам (благо там обычно не много), потом открываю инструкцию по обновлению к релизу (хотя и знаю её наизусть) и делаю все построчно...

Где там можно заблудится не понятно...
Склоняюсь тоже к тому, что не внимательность.
#14 1 февраля 2020 в 23:28
Чуть оффтоп. Кто может подсказать, какой запрос в БД решит проблему /novosti/release2130.html? последние 3 комментария
#15 2 февраля 2020 в 09:37

Чуть оффтоп.

Def
Это не оффтоп. Эта тема именно про Вас!
Такая ошибка сигнализирует, что при обновлении движка у Вас не обновилась база.
Можно, конечно, сделать запрос в базу примерно такой:
  1. ALTER TABLE `cms_users_groups` ADD `ordering` INT(11) UNSIGNED NULL DEFAULT '1';
  2. UPDATE `cms_users_groups` SET `ordering` = `id` WHERE 1;
  3. ALTER TABLE `cms_users_groups` ADD KEY `ordering` (`ordering`);
Но есть вариант, что будут еще ошибки, так как база не обновилась.
Я бы советовал установить обновление отсюда: /novosti/release2130.html еще раз вручную.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.