Ошибка в запросе БД

InstantCMS 2.X
#1 7 марта 2021 в 22:32
Добрый вечер! Помогите пожалуйста решить проблему:

Ошибка в запросе БД:
Key 'date_pub' doesn't exist in table 'i'
SELECT i.*
FROM cms_con_board_cats i
FORCE INDEX FOR ORDER BY (date_pub)
WHERE (i.is_hidden IS NULL) AND (i.parent_id = '1')
ORDER BY i.ns_left
Последние вызовы:

cmsModel->get() @ /system/core/model.php: 359
cmsModel->getSubCategories() @ /system/controllers/content/actions/category_view.php: 265
actionContentCategoryView->run() @ /system/core/controller.php: 582
cmsController->runExternalAction() @ /system/core/controller.php: 453
cmsController->executeAction() @ /system/core/controller.php: 429
cmsController->runAction() @ /system/controllers/content/frontend.php: 24
content->route() @ /system/core/controller.php: 476
cmsController->executeAction() @ /system/core/controller.php: 429
cmsController->runAction() @ /system/core/core.php: 779
cmsCore->runController() @ /index.php: 46
#2 8 марта 2021 в 09:55
Это нерешаемый вопрос так как instantcms.
#3 8 марта 2021 в 12:12


Это нерешаемый вопрос так как instantcms.

@noname
это камень в огород самой CMS или людям которые тут обитают? glasses
#4 8 марта 2021 в 12:33

это камень в огород самой CMS или людям которые тут обитают?

Tolya
Не обращайте внимания, это местный чудак, который ходит по темам и отвечает лишь бы ответить, а не по существу. Был удалён раз нцать, но всё регистрируется и регистрируется.
#5 8 марта 2021 в 12:44

Это нерешаемый вопрос так как instantcms.

@noname
Это нерешаемый вопрос по другой причине.
Вот этот запрос
  1. SELECT i.*
  2. FROM cms_con_board_cats i
  3. FORCE INDEX FOR ORDER BY (date_pub)
  4. WHERE (i.is_hidden IS NULL) AND (i.parent_id = '1')
  5. ORDER BY i.ns_left
должен выглядеть так:
  1. SELECT i.*
  2. FROM cms_con_board_cats i
  3. WHERE (i.is_hidden IS NULL) AND (i.parent_id = '1')
  4. ORDER BY i.ns_left
По крайней мере, так он выглядит на сайте здорового человека.
Почему вдруг появился FORCE INDEX FOR ORDER BY (date_pub) и что делалось перед тем, как появилась ошибка — автор темы не говорит.
Индекса date_pub в таблице cms_con_board_cats нет, как нет и поля date_pub.
Можно, конечно, создать его вручную...
  1. ALTER TABLE `cms_con_board_cats` ADD INDEX `date_pub` (`ordering`) USING BTREE;
Но это будет костыль.
Лучше разобраться, почему вдруг система запросила такой индекс. Какие дополнения перед этим устанавливались?
#6 8 марта 2021 в 13:07


Это нерешаемый вопрос так как instantcms.

@noname
Это нерешаемый вопрос по другой причине.
Вот этот запрос
  1. SELECT i.*
  2. FROM cms_con_board_cats i
  3. FORCE INDEX FOR ORDER BY (date_pub)
  4. WHERE (i.is_hidden IS NULL) AND (i.parent_id = '1')
  5. ORDER BY i.ns_left
должен выглядеть так:
  1. SELECT i.*
  2. FROM cms_con_board_cats i
  3. WHERE (i.is_hidden IS NULL) AND (i.parent_id = '1')
  4. ORDER BY i.ns_left
По крайней мере, так он выглядит на сайте здорового человека.
Почему вдруг появился FORCE INDEX FOR ORDER BY (date_pub) и что делалось перед тем, как появилась ошибка — автор темы не говорит.
Индекса date_pub в таблице cms_con_board_cats нет, как нет и поля date_pub.
Можно, конечно, создать его вручную...
  1. ALTER TABLE `cms_con_board_cats` ADD INDEX `date_pub` (`ordering`) USING BTREE;
Но это будет костыль.
Лучше разобраться, почему вдруг система запросила такой индекс. Какие дополнения перед этим устанавливались?

Ris

Благодарю за ответ! Никакие. Обновился сначала до версии 2.14.0, а затем до версии 2.14.1. После какого обновления появилась ошибка точно сказать не могу.
Версия InstantCMS: 2.14.1
Веб сервер: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips mod_fcgid/2.3.9 Phusion_Passenger/5.3.7
Mysql сервер: 5.7.27
Версия PHP: 7.2.34, cgi-fcgi
Лимит памяти: 1 Гб
Макс. размер загрузки: 256 Мб
IP адрес сервера: 127.0.0.1
Обработчик сессий: files
Установлен Zend OPcache: Да
Установлен IonCube Loader: Да
Установлен Zend Guard Loader: Нет
Шаблон: Boxed
#7 8 марта 2021 в 13:25

Обновился сначала до версии 2.14.0, а затем до версии 2.14.1.

@daetotvoyo
Значит как-то неправильно обновились.
Либо файлы остались от старых версий, либо база не обновлена.
#8 8 марта 2021 в 14:07
Потому что пока не пнешь с места ничего не сдвинется.
#9 8 марта 2021 в 14:10

Потому что пока не пнешь с места ничего не сдвинется .

@noname
Это да. Почаще пинайте, а то Вам все должны что-то делать, а не делают ничего.
В суд подайте на всех (коллективный иск).
#10 8 марта 2021 в 14:13
Вы то нормальный, к Вам претензи нет. А другие так вероятно и не поднимутся с колен. В юмористические передачи не берут и тут не очень получается юморить.
#11 8 марта 2021 в 15:19

В юмористические передачи не берут и тут не очень получается юморить

@noname
Это объяснимо.
Fuze долгими зимними вечерами сидит и пишет мануалы по установке и обновлению. И такое ощущение, что читает их тоже только он сам.
Люди обновляются, как бог на душу положит, выдало кучу ошибок — неважно, продолжаем дальше, потом пишут темы на форуме на одну и ту же тему "я чего-то сделал, а оно чего-то не работает". Хотя в мануале четко сказано "перед обновлением сделать бэкап файлов и базы данных".
Из которых всегда можно откатиться и повторить обновление четко по инструкции и без ошибок.
Что тут остается? Только юморить.

Я бы на месте Fuze вообще убрал бы из инструкции место про "ручное" обновление. Чтобы вебмастера научились наконец пользоваться автоматической установкой обновлений из админки, которое не прощает ошибок и не даст обновиться "серединка на половинку".
#12 8 марта 2021 в 17:43

Люди обновляются, как бог на душу положит, выдало кучу ошибок — неважно, продолжаем дальше, потом пишут темы на форуме на одну и ту же тему "я чего-то сделал, а оно чего-то не работает". Хотя в мануале четко сказано "перед обновлением сделать бэкап файлов и базы данных".

Ris
Некоторое время назад помогал человеку с таким сайтом, нашел причину, предложил варианты. Тема напомнила мне эту ситуацию, пошел посмотреть, а там — сайт на… Joomla.
Мне не подвластна логика таких людей.
#13 8 марта 2021 в 18:11

Потому что пока не пнешь с места ничего не сдвинется .

@noname
О, режим руководителя включился. Ну а где, если не здесь)

@daetotvoyo, проблема есть, да, уже описана в тикете.

Решение простое:
/system/controllers/content/actions/category_view.php

Строки
  1. $subcats = $this->model->filterIsNull('is_hidden')->
  2. getSubCategories($ctype['name'], $current_cat_id);
заменить на
  1. $subcats = cmsCore::getModel('content')->filterIsNull('is_hidden')->
  2. getSubCategories($ctype['name'], $current_cat_id);
#14 8 марта 2021 в 23:47


@daetotvoyo, проблема есть, да, уже описана в тикете.
Решение простое:

Fuze

Благодарю Вас за подсказанное решение. Да, действительно, в типе контента, который у меня выдал ошибку, во вкладке "Категории" стояли настройки, указанные Вами по ссылке. Но я пока откатился до предыдущей версии, так как было еще несколько мелких ошибок: в админке двойное меню, в фотоальбомах с просмотром некоторых галерей фотографий, с редактором Markitup… Будет время, буду разбираться. Еще раз благодарю за Вашу помощь и Ваш труд.
#15 9 марта 2021 в 10:42

Еще раз благодарю за Вашу помощь и Ваш труд.

@daetotvoyo
Вот видите, Вы и "начальник" и Дартаньян в белом пальто и планету спасли laugh
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.