При публикации контента не создается ссылка в БД. Кто шарит в этом?

#1 28 июля 2016 в 15:46
Перенес сайт с локалки на хостинг. Запустил.

Обнаружил серьезный косяк.

При публикации контента в тип контента «board», почему-то не создается ссылка, хотя в настройках она должны иметь вид {id}

т.е. в момент публикации, когда юзер нажимает на сохранить, то вылазит ошибка.
Контент, который он пытался опубликовать, сохранился, а сама ссылка получается пустая:
sait.ru/board/.html
после слэша и перед html — нет id ссылки. Пару дней назад всё сохраняло без проблем.
Сейчас нормально сохраняется через раз. Т.е. одна статься публикуется без проблем, а во время публикации второй — опять вылазит этот косяк.


Также попробовал загрузить фото к контенту под тестовым аккаунтом юзера, но опять вылазит ошибка.
Попробовал загрузить фото от имени админа — фото загрузилось, но вылезла ошибка 503.

В чем может быть проблема?
#2 28 июля 2016 в 19:48
Man,
Включите отладку, оно покажет понятнее, чем 503.
#3 29 июля 2016 в 17:16
Вот что говорит отладка:

Ошибка в запросе БД:
Duplicate entry '6141' for key 'PRIMARY'

INSERT INTO cms_con_board_cats_bind (`item_id`, `category_id`)
VALUES ('6141', '17')
Последние вызовы:

insert() @ /home/h1133/public_html/sait.ru/system/core/model.php: 492
insert() @ /home/h1133/public_html/sait.ru/system/controllers/content/model.php: 1697
updateContentItemCategories() @ /home/h1133/public_html/sait.ru/system/controllers/content/model.php: 1442
addContentItem() @ /home/h1133/public_html/sait.ru/system/controllers/content/actions/item_add.php: 206
run()
call_user_func_array() @ /home/h1133/public_html/sait.ru/system/core/controller.php: 382
runExternalAction() @ /home/h1133/public_html/sait.ru/system/core/controller.php: 308
runAction() @ /home/h1133/public_html/sait.ru/system/controllers/content/frontend.php: 15
route()
call_user_func() @ /home/h1133/public_html/sait.ru/system/core/controller.php: 333
runAction() @ /home/h1133/public_html/sait.ru/system/core/core.php: 687
#4 29 июля 2016 в 18:04

Duplicate entry '6141' for key 'PRIMARY'

Man
Вероятно вы правили базу вручную, где исправляли id. Ищите в указанной таблице запись с ID = 6141. Либо на хостинге есть проблема с автоинкрементом, либо поле id в таблицы при переносе стало без автоинкремента.
#5 29 июля 2016 в 18:21

Вероятно вы правили базу вручную, где исправляли id. Ищите в указанной таблице запись с ID = 6141. Либо на хостинге есть проблема с автоинкрементом, либо поле id в таблицы при переносе стало без автоинкремента.

Fuze
Да, правил вручную, так как переносил сайт с Джумлы на ICMS 2.

Как мне теперь решить эту проблему?

Не может ли возникать данная проблема из-за того, что объявление публикуется сразу в 2-3 категории?
#6 29 июля 2016 в 18:55
Я тут внимательно посмотрел еще раз вашу отладку.

cms_con_board_cats_bind

Man

Duplicate entry '6141' for key 'PRIMARY'

Man
В этой таблице не должно было быть PRIMARY индекса и автоинкремента.
Вот такая должны быть таблица и индексы:
  1. CREATE TABLE IF NOT EXISTS `cms_con_board_cats_bind` (
  2. `item_id` INT(11) DEFAULT NULL,
  3. `category_id` INT(11) DEFAULT NULL,
  4. KEY `item_id` (`item_id`),
  5. KEY `category_id` (`category_id`)
  6. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
#7 29 июля 2016 в 19:08
Man,
Выполните в пыхапемайадмине
  1. ALTER TABLE cms_con_board_cats_bind DROP PRIMARY KEY
#8 29 июля 2016 в 19:23

В этой таблице не должно было быть PRIMARY индекса и автоинкремента.
Вот такая должны быть таблица и индексы:

Fuze

Когда пытаюсь в item_id выставить в «По умолчанию» NULL, то жму на «сохранить», но оно не сохраняется.
И ключик «Первичный» должен быть золотого цвета, но он серебренный.





В чем может быть проблема?
#9 29 июля 2016 в 19:30

Выполните в пыхапемайадмине

Ris
Благодарю! Получилось!


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