Posted 2 маяMay 2 comment_204173 Добрый день, вот и настал момент обновить форум. Но как обычно без проблем не обходится при попытки обновления с версии 3.4 до версии 4.7 получаю следующую ошибку: Unknown column 'field_' in 'field list' /var/www/animeforum/applications/core/setup/upg_40000/upgrade.php::724 INSERT INTO `an_core_pfields_content` ( `member_id`, `field_` ) VALUES ( ?, ? ) ON DUPLICATE KEY UPDATE `member_id`=VALUES(`member_id`), `field_`=VALUES(`field_` Проблемная строка из файла обновления: \IPS\Db::i()->insert( 'core_pfields_content', array( 'member_id' => $row['member_id'], 'field_' . $_SESSION['aboutMe_Field'] => $aboutMe ), TRUE );
2 маяMay 2 Author comment_204175 2 минуты назад, Respected сказал: https://ipbmafia.ru/topic/23837-oshibka-pri-obnovlenii-s-34x/ Да, я почитал этот топик, но мне осталось не понятным, что помогло автору. У меня рабочая среда облачный Линукс Centos 9 Stream, Apache 2.4, PHP 8.2, MySQL 8 Автор вроде бы разворачивал локально у себя на машине и ему советовали разворачивать на Линукс, у меня уже всё на Линукс.
2 маяMay 2 comment_204176 1 минуту назад, Seirei сказал: Да, я почитал этот топик, но мне осталось не понятным, что помогло автору. У меня рабочая среда облачный Линукс Centos 9 Stream, Apache 2.4, PHP 8.2, MySQL 8 Автор вроде бы разворачивал локально у себя на машине и ему советовали разворачивать на Линукс, у меня уже всё на Линукс. Проверь что в сессии хранится у тебя. Типа var_dump( $_SESSION ); Можно найти поле Обо мне вручную в таблице core_pfields_data и вручную занести его ID в сессию: $_SESSION['aboutMe_Field'] = $ID;
2 маяMay 2 Author comment_204178 3 минуты назад, Respected сказал: Проверь что в сессии хранится у тебя. Типа var_dump( $_SESSION ); Можно найти поле Обо мне вручную в таблице core_pfields_data и вручную занести его ID в сессию: $_SESSION['aboutMe_Field'] = $ID; Переменную проверю сейчас Да вот не вижу я у себя в таблице такого поля: https://content.invisioncic.com/a319035/monthly_2024_05/image.png.aa3fdc8d5cdee1596118a5e74ed98393.png
2 маяMay 2 comment_204179 Тогда его нужно создать, вот скрипт создания этого поля: /* Groups */ foreach( \IPS\Db::i()->select( 'g_id, g_title', 'core_groups' ) as $group ) { \IPS\Lang::saveCustom( 'core', "core_group_{$group['g_id']}", $group['g_title'] ); } \IPS\Db::i()->dropColumn( 'core_groups', 'g_title' ); /* Set tables */ \IPS\Db::i()->dropTable( 'core_members_temp', TRUE ); \IPS\Db::i()->createTable( $membersDefinition ); /* Create the about me profile field group */ $group = \IPS\Db::i()->insert( 'core_pfields_groups', array( 'pf_group_key' => 'profile_40_fields', 'pf_group_name' => "Profile Fields" ) ); \IPS\Lang::saveCustom( 'core', 'core_pfieldgroups_' . $group, "Profile Fields" ); /* Create the about me profile field */ $aboutMe = new \IPS\core\ProfileFields\Field; $aboutMe->group_id = $group; $aboutMe->type = "Editor"; $aboutMe->content = NULL; //$aboutMe->multiple = FALSE; $aboutMe->not_null = FALSE; $aboutMe->max_input = 0; $aboutMe->input_format = NULL; $aboutMe->search_type = "loose"; $aboutMe->format = NULL; $aboutMe->admin_only = FALSE; $aboutMe->show_on_reg = FALSE; $aboutMe->member_edit = TRUE; $aboutMe->member_hide = FALSE; try { $aboutMe->save(); /* We have to store the title for now so step6 won't wipe it out */ \IPS\Db::i()->update( 'core_pfields_data', array( 'pf_title' => "About Me" ), "pf_id=" . $aboutMe->id ); \IPS\Lang::saveCustom( 'core', 'core_pfield_' . $aboutMe->id, "About Me" ); \IPS\Lang::saveCustom( 'core', 'core_pfield_' . $aboutMe->id . '_desc', "" ); } catch( \Exception $ex ) { \IPS\Log::log( $ex, 'upgrade' ); }
2 маяMay 2 comment_204180 @Seirei, чуть подробнее опишите ,шаг за шагом,кАк обновляли. Подозреваю что вы решили одним махом обновиться до 4.* ,поэтому,скорее всего,ошибка и вылетает. Как бы я бновлялся? Сначала обновился бы до последней,переходящей, 3.* версии,затем уже перескочил на первую 4.*, ну а далее уже обычным способом до актуальной. И не забывайте,кстати,обновлять и версию рнр на актуальную для версий IPSа.
2 маяMay 2 Author comment_204181 4 минуты назад, Respected сказал: Тогда его нужно создать, вот скрипт создания этого поля: Так это же скрипт из файле обновления и он выше идёт в очереди. Вы думаете он не выполняется? Группа полей у меня создаётся: Я так понимаю у меня не срабатывает эта часть скрипта, которая должна создать поле About Me: AHristich , добрый день. У меня до этого стояла последняя версия IPB 3, а именно IPB 3.4.9. Стояла официальна русская версия с лицензией, тогда ещё проданная http://www.ibresource.ru/. Сейчас ставлю тоже официальную версию, но уже купленную напрямую у https://invisioncommunity.com/ https://content.invisioncic.com/a319035/monthly_2024_05/image.png.8e3017f65acb4f4ee8ccc0644394278a.png https://content.invisioncic.com/a319035/monthly_2024_05/image.png.8e3017f65acb4f4ee8ccc0644394278a.png
2 маяMay 2 Author comment_204188 3 часа назад, Respected сказал: Если группа добавлена, можно вручную добавить поле прямо в phpmyadmin А не подскажите как подгодать момент, чтобы внести изменения? Подождать ошибки? Или заранее
3 маяMay 3 Author comment_204197 Я разобрался с этой ошибкой, проблема была в таблице pfields_data, а именно в столбцах pf_title и pf_desc. Не было задано значений по умолчанию, отчего процедура сохранения новой записи вываливалась с ошибкой. Я добавил значение по умолчанию NULL для обоих столбцов и процесс обновления продолжился нормально. Но я пока вынужден был прервать его. Вечером попробую полностью обновить форум.
4 маяMay 4 Author comment_204241 В итоге обновление прошло удачно, больше ошибок не было. Сейчас правлю некоторые баги. У меня ошибка с отправкой электронных писем: Creation of dynamic property IPS\Email\Outgoing\Php::$language is deprecated https://ipbskins.ru/uploads/monthly_2024_05/image.thumb.png.cd57aaefcff5360614a7e763bc389db9.png Кто-то может подсказать в чём дело?
4 маяMay 4 Author comment_204246 Как оказалось, то IPB 4 не поддерживает PHP 8.2, переключился на PHP 8.1 Но в итоге теперь другая ошибка: Function strftime() is deprecated 1 час назад, Zero108 сказал: Может через smtp слать, а не через php? А через пхп нельзя настроить? Edited 4 маяMay 4 by Seirei
4 маяMay 4 Author comment_204253 3 часа назад, Respected сказал: Лучше перезалить файлы, похоже некоторых не хватает. Это первое, что было сделано. Тут явно какой-то косяк с PHP, может в конфигурационном файле php.ini что-то поправить?
4 маяMay 4 comment_204254 https://invisioncommunity.com/forums/topic/473896-error-4c1431-creation-of-dynamic-property-ipsemailoutgoingphplanguage-is-deprecated/
4 маяMay 4 Author comment_204256 Так я же уже поменял на PHP 8.1, а там последний ответ: The error will not go away from the logs. That error will only be generated on 8.2
4 маяMay 4 Author comment_204258 Respected А если не секрет, этот форум работает на какой версии PHP?
5 маяMay 5 comment_204262 11 часов назад, Seirei сказал: Как оказалось, то IPB 4 не поддерживает PHP 8.2, переключился на PHP 8.1 IPS 4.6.12 спокойно и без ошибок фурычит на рнр 8.0,8.1,8.2
5 маяMay 5 Author comment_204263 58 минут назад, AHristich сказал: IPS 4.6.12 спокойно и без ошибок фурычит на рнр 8.0,8.1,8.2 У меня проблема только с отправкой e-mail, на 8.2: На 8.1: Edited 5 маяMay 5 by Seirei
6 маяMay 6 Author comment_204304 20 часов назад, Respected сказал: php 8.2.18 А у вас отправка e-mail настроена через PHP или SMTP?
6 маяMay 6 Author comment_204328 В общем по глупости забыл поставить sendmail. Edited 6 маяMay 6 by Seirei
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.