Skip to content

Обновление Trader Feedback System 2.2.2

Господа, помогите исправить, где то ошибка при обновлении с 3ки на 4ку

 

При установке приложение создает такие запросы

 

UPDATE `ibf_feedback_feedback` SET `fb_date`=0 WHERE `fb_date` IS NULL;
CREATE TABLE `ibf_feedback_feedback_new` LIKE `ibf_feedback_feedback`;

 

Эти два проходят без проблем, на следующем ошибка:

 

#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

 

ALTER TABLE `ibf_feedback_feedback_new` ADD COLUMN `fb_id` MEDIUMINT (8) UNSIGNED NOT NULL AUTO_INCREMENT , DROP INDEX `receiver`, ADD KEY `receiver` (`fb_receiver_id`,`fb_date`,`fb_type`), DROP INDEX `sender`, ADD KEY `sender` (`fb_sender_id`,`fb_date`), CHANGE COLUMN `fb_date` `fb_date` INT (10) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Date feedback left', ADD COLUMN `fb_sender_id` MEDIUMINT (8) NOT NULL DEFAULT 0 COMMENT 'Member ID of member that is leaving the feedback', ADD COLUMN `fb_receiver_id` MEDIUMINT (8) NOT NULL DEFAULT 0 COMMENT 'Member ID of member that the feedback is for', ADD COLUMN `fb_ip` VARCHAR (46) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '' , ADD COLUMN `fb_comment` TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL , ADD COLUMN `fb_rating` TINYINT (1) NOT NULL DEFAULT 0 COMMENT 'Feedback rating, 0 = Negative, 1 = Neutral, 2 = Positive', ADD COLUMN `fb_content_id` INT (10) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'I.e. Topic ID, Classifieds Item ID', ADD COLUMN `fb_type` TINYINT (1) NOT NULL DEFAULT 0 COMMENT 'Feedback type, 0 = Sender is Buyer, 1 = Sender is Seller, 2 = Trade/Swap', DROP INDEX `PRIMARY`, ADD PRIMARY KEY (`fb_id`);

 

 

Далее должны идти следующие запросы, но на 3м все клинит :(

 

INSERT IGNORE INTO `ibf_feedback_feedback_new` SELECT * FROM `ibf_feedback_feedback`;
DROP TABLE `ibf_feedback_feedback`;
RENAME TABLE `ibf_feedback_feedback_new` TO `ibf_feedback_feedback`;
ALTER TABLE `ibf_core_members` CHANGE COLUMN `feedb_percent` `feedb_percent` TINYINT (3) NULL DEFAULT -1 ALTER TABLE `ibf_core_members` CHANGE COLUMN `feedb_pos` `feedb_pos` SMALLINT (5) NULL DEFAULT 0 
ALTER TABLE `ibf_core_members` CHANGE COLUMN `feedb_neg` `feedb_neg` SMALLINT (5) NULL DEFAULT 0 
ALTER TABLE `ibf_core_members` CHANGE COLUMN `feedb_neu` `feedb_neu` SMALLINT (5) NULL DEFAULT 0 
ALTER TABLE `ibf_core_groups` ADD COLUMN `feedback_add` TINYINT (1) NULL DEFAULT 0 
ALTER TABLE `ibf_core_groups` ADD COLUMN `feedback_edit` INT (10) NULL DEFAULT 0 
ALTER TABLE `ibf_core_groups` ADD COLUMN `feedback_flood` INT (10) NULL DEFAULT 0 
ALTER TABLE `ibf_core_groups` ADD COLUMN `feedback_captcha` TINYINT (1) NULL DEFAULT 0 

Featured Replies

CREATE TABLE LIKE копирует структуру таблицы донора, в том числе и индексы. В таблице может быть одно автоинкрементируемое поле которое должно быть индексом. Если вы выполняете запросы вручную, перед выполнением третьего посмотрите структуру таблицы ibf_feedback_feedback_new и удалите AUTO_INCREMENT у поле с этим значением.

  • Author

Спасибо, сбросил, прошел 3 запрос :) теперь на 4м запросе заклинило :(

 

Ошибка

SQL-запрос:

 

INSERT IGNORE INTO `ibf_feedback_feedback_new`

SELECT *

FROM `ibf_feedback_feedback` ;

 

 

Ответ MySQL: #1136 - Column count doesn't match value count at row 1

Количество полей в первой таблице не соответствует количеству полей из второй. Предыдущий запрос прошел нормально? Сравните структуру этих двух таблиц.

  • Author

Да, наштамповало там лишних полей игнорируя ошибку, удалил

Теперь полезло с другой стороны

 


Ошибка
SQL-запрос:

ALTER TABLE  `ibf_core_members` CHANGE COLUMN  `feedb_percent`  `feedb_percent` TINYINT( 3 ) NULL DEFAULT -1 ALTER TABLE  `ibf_core_members` CHANGE COLUMN  `feedb_pos`  `feedb_pos` SMALLINT( 5 ) NULL DEFAULT 0 ALTER TABLE  `ibf_core_members` CHANGE COLUMN  `feedb_neg`  `feedb_neg` SMALLINT( 5 ) NULL DEFAULT 0 ALTER TABLE  `ibf_core_members` CHANGE COLUMN `feedb_neu`  `feedb_neu` SMALLINT( 5 ) NULL DEFAULT 0 ALTER TABLE  `ibf_core_groups` ADD COLUMN  `feedback_add` TINYINT( 1 ) NULL DEFAULT 0 ALTER TABLE  `ibf_core_groups` ADD COLUMN `feedback_edit` INT( 10 ) NULL DEFAULT 0 ALTER TABLE  `ibf_core_groups` ADD COLUMN  `feedback_flood` INT( 10 ) NULL DEFAULT 0 ALTER TABLE  `ibf_core_groups` ADD COLUMN  `feedback_captcha` TINYINT( 1 ) NULL DEFAULT 0

Ответ MySQL: 

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ALTER TABLE `ibf_core_members` CHANGE COLUMN `feedb_pos` `feedb_pos` SMALLINT (5' at line 1 

 

 

Запросы разделяются точкой с запятой и переносом строки или выполняются по одному.

  • Author

Вот это я дал)))) Извиняюсь, копирнул не глядя, прошли запросы, спасибо огромное за помощь :)

 

Пока не закрывайте пожалуйста тему.

Edited by leonovich

  • 2 years later...
  • Author

Спасите помогите.unsure.gifСнова это приложение.... https://invisioncommunity.com/files/file/3366-trader-feedback-system/

Перед тем как писать, отключил все плагины и приложения, все 100 раз проверил.

Разраб на морозе, грит у тебя какой то плагин сбой дает.... но это не так!

Не систематично вылетает ошибка при использовании этого приложения, отзыв ставится - но вылетает ошибка и пользователи начинают клепать отзывы снова......dry.gif

 LogicException:  (0)
#0   /ps4.in.ua/system/Email/Email.php(481): IPS\_Email::devProcessTemplate('email__feedback...', '\xD0\xA5\xD1\x82\xD0\xBE\xD1\x81\xD1\x8C \xD0\xB7\xD0\xB0...', Array, 'plaintext')
#1   /ps4.in.ua/system/Email/Email.php(819): IPS\_Email->compileSubject(Object(IPS\Member), Object(IPS\Lang))
#2   /ps4.in.ua/system/Notification/Notification.php(574): IPS\_Email->mergeAndSend(Array, NULL, NULL, Array, Object(IPS\Lang))
#3   /ps4.in.ua/init.php(588) : eval()'d code(16): IPS\_Notification->sendEmails(Array, Array)
#4   /ps4.in.ua/system/Notification/Notification.php(555): IPS\hook603->sendEmails(Array, Array)
#5   /ps4.in.ua/applications/feedback/sources/Feedback/Feedback.php(266): IPS\_Notification->send()
#6   /ps4.in.ua/applications/feedback/modules/front/feedback/form.php(160): IPS\feedback\_Feedback->save()
#7   /ps4.in.ua/system/Dispatcher/Controller.php(96): IPS\feedback\modules\front\feedback\_form->manage()
#8   /ps4.in.ua/system/Dispatcher/Dispatcher.php(152): IPS\Dispatcher\_Controller->execute()
#9   /ps4.in.ua/index.php(13): IPS\_Dispatcher->run()
#10 {main}

 

 

 

ОБРАТНАЯ ТРАССИРОВКА

 


#0 /ps4.in.ua/init.php(659): IPS\_Log::log('LogicException:...', 'uncaught_except...')
#1 [internal function]: IPS\IPS::exceptionHandler(Object(LogicException))
#2 {main}

 

Ну, судя по логам корни действительно растут от какого-то хука - hook603 при отправке уведомления на емайл.

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

  • Author

Подскажите, каким образом искать этот хук в БД?unsure.gif

SELECT * FROM core_hooks WHERE id=603;

Разраб на морозе, грит у тебя какой то плагин сбой дает.... но это не так!

Пишите еще.

\applications\feedback\sources\Feedback\Feedback.php

			/* Send notifications to followers */
		$notification	= new \IPS\Notification( \IPS\Application::load( 'feedback' ), 'new_feedback_follower', $this, array( $this ) );

Но в приложении нет email-шаблона new_feedback_follower

Но в приложении нет email-шаблона new_feedback_follower

Об этом подумал и я. Аналогичная проблема была тут http://ipbskins.ru/forum/topic15859.html#entry106309 Уведомление отправлялось на емайл, а шаблон для него отсутствовал в итоге выбрасывалось исключение а скрипт не отрабатывал до конца.

В настройках уведомлений в АЦ нужно отключить для этого события емайл отправку.

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.