Перейти к содержанию

Проблемы при обновлении форума с версии IPB 3.4 до версии IPB 4.7


Рекомендуемые сообщения

Добрый день, вот и настал момент обновить форум. Но как обычно без проблем не обходится при попытки обновления с версии 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_`

 

2024-05-02025250.thumb.png.41c130b749d5690ad80d79af7f1a7593.png

Проблемная строка из файла обновления:

\IPS\Db::i()->insert( 'core_pfields_content', array( 'member_id' => $row['member_id'], 'field_' . $_SESSION['aboutMe_Field'] => $aboutMe ), TRUE );

 

Ссылка на комментарий
Поделиться на другие сайты

2 минуты назад, Respected сказал:

Да, я почитал этот топик, но мне осталось не понятным, что помогло автору. У меня рабочая среда облачный Линукс Centos 9 Stream, Apache 2.4, PHP 8.2, MySQL 8

Автор вроде бы разворачивал локально у себя на машине и ему советовали разворачивать на Линукс, у меня уже всё на Линукс.

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, Seirei сказал:

Да, я почитал этот топик, но мне осталось не понятным, что помогло автору. У меня рабочая среда облачный Линукс Centos 9 Stream, Apache 2.4, PHP 8.2, MySQL 8

Автор вроде бы разворачивал локально у себя на машине и ему советовали разворачивать на Линукс, у меня уже всё на Линукс.

Проверь что в сессии хранится у тебя. Типа var_dump( $_SESSION ); Можно найти поле Обо мне вручную в таблице core_pfields_data и вручную занести его ID в сессию:

$_SESSION['aboutMe_Field'] = $ID;

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

Тогда его нужно создать, вот скрипт создания этого поля:

/* 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' );
}

 

Ссылка на комментарий
Поделиться на другие сайты

@Seirei, чуть подробнее опишите ,шаг за шагом,кАк обновляли.

Подозреваю что вы решили одним махом обновиться до 4.* ,поэтому,скорее всего,ошибка и вылетает.

Как бы я бновлялся?

Сначала обновился бы до последней,переходящей, 3.* версии,затем уже перескочил на первую 4.*, ну а далее уже обычным способом до актуальной. И не забывайте,кстати,обновлять и версию рнр на актуальную для версий IPSа.

Ссылка на комментарий
Поделиться на другие сайты

4 минуты назад, Respected сказал:

Тогда его нужно создать, вот скрипт создания этого поля:

 

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

Группа полей у меня создаётся:

image.png.e9e853b8198d81fff85e896d5a4b7757.png

Я так понимаю у меня не срабатывает эта часть скрипта, которая должна создать поле About Me:

image.thumb.png.0b05fde98e7125c2ec514f092e064ad2.png

 

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

Ссылка на комментарий
Поделиться на другие сайты

Если группа добавлена, можно вручную добавить поле прямо в phpmyadmin

Ссылка на комментарий
Поделиться на другие сайты

3 часа назад, Respected сказал:

Если группа добавлена, можно вручную добавить поле прямо в phpmyadmin

А не подскажите как подгодать момент, чтобы внести изменения? Подождать ошибки? Или заранее

Ссылка на комментарий
Поделиться на другие сайты

Я разобрался с этой ошибкой, проблема была в таблице pfields_data, а именно в столбцах pf_title и pf_desc. Не было задано значений по умолчанию, отчего процедура сохранения новой записи вываливалась с ошибкой. Я добавил значение по умолчанию NULL для обоих столбцов и процесс обновления продолжился нормально. Но я пока вынужден был прервать его. Вечером попробую полностью обновить форум.

Ссылка на комментарий
Поделиться на другие сайты

В итоге обновление прошло удачно, больше ошибок не было. Сейчас правлю некоторые баги. У меня ошибка с отправкой электронных писем:
 

Creation of dynamic property IPS\Email\Outgoing\Php::$language is deprecated

https://ipbskins.ru/uploads/monthly_2024_05/image.thumb.png.cd57aaefcff5360614a7e763bc389db9.png

 

Кто-то может подсказать в чём дело?

Ссылка на комментарий
Поделиться на другие сайты

Может через smtp слать, а не через php? 

Изменено пользователем Zero108
Ссылка на комментарий
Поделиться на другие сайты

 Как оказалось, то IPB 4 не поддерживает PHP 8.2, переключился на PHP 8.1

Но в итоге теперь другая ошибка:

Function strftime() is deprecated

image.thumb.png.9685dc18c25ec27c1c5804f56c9e68fe.png

1 час назад, Zero108 сказал:

Может через smtp слать, а не через php?

А через пхп нельзя настроить?

Изменено пользователем Seirei
Ссылка на комментарий
Поделиться на другие сайты

Лучше перезалить файлы, похоже некоторых не хватает.

Ссылка на комментарий
Поделиться на другие сайты

3 часа назад, Respected сказал:

Лучше перезалить файлы, похоже некоторых не хватает.

Это первое, что было сделано. Тут явно какой-то косяк с PHP, может в конфигурационном файле php.ini что-то поправить?

Ссылка на комментарий
Поделиться на другие сайты

Ссылка на комментарий
Поделиться на другие сайты

Так я же уже поменял на PHP 8.1, а там последний ответ:

The error will not go away from the logs. That error will only be generated on 8.2

Ссылка на комментарий
Поделиться на другие сайты

Respected А если не секрет, этот форум работает на какой версии PHP?

Ссылка на комментарий
Поделиться на другие сайты

11 часов назад, Seirei сказал:

Как оказалось, то IPB 4 не поддерживает PHP 8.2, переключился на PHP 8.1

IPS 4.6.12 спокойно и без ошибок фурычит на рнр 8.0,8.1,8.2

Ссылка на комментарий
Поделиться на другие сайты

58 минут назад, AHristich сказал:

IPS 4.6.12 спокойно и без ошибок фурычит на рнр 8.0,8.1,8.2

У меня проблема только с отправкой e-mail, на 8.2:

image.png.a42c70892026bae65a3851fb30b003e6.thumb.png.863e17b0287ce0955be9408a369eed6a.png

На 8.1:

image.png.68a95e5bdf8260cfd6562f4f31b6c49b.thumb.png.6d9ca2f8dc4e51906330bb4f48a7c567.png

Изменено пользователем Seirei
Ссылка на комментарий
Поделиться на другие сайты

20 часов назад, Respected сказал:

php 8.2.18

А у вас отправка e-mail настроена через PHP или SMTP?

Ссылка на комментарий
Поделиться на другие сайты

В общем по глупости забыл поставить sendmail.

Изменено пользователем Seirei
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...