Skip to content

Вопрос по БД при обновлении

Доброго дня.

Сразу к сути проблемы.

Очень долго оставался я 3-ке и решил перевести свой форум на 4-ку.

Создал копию файлов и БД. Перенес все на поддомен и решил потренироваться.

На клоне отключил все хуки, приложения и тему поставил по дефолту для чистоты эксперимента.

При обновлении с 3.4.6 (3.4.9) на 4.2.2. выскакиваю ошибки:

Duplicate entry 'External' for key 'PRIMARY' 
/var/www/****/data/www/****/applications/core/setup/upg_40000/upgrade.php::908
INSERT INTO `core_login_handlers` ( `login_settings`, `login_key`, `login_enabled`, `login_order` ) VALUES ( ?, ?, ?, ? )

При продолжении

Table '****.login_methods' doesn't exist 
/var/www/****/data/www/****/system/Db/Select.php::433
SELECT * FROM `login_methods`

Хотя таблица login_methods была. Импортирую с дистрибутива и снова первая ошибка и потом вторая.

Я запутался уже...

Featured Replies

Пробуем

applications/core/setup/upg_40000/upgrade.php

			$max++;
		\IPS\Db::i()->insert( 'core_login_handlers', array( 'login_settings' => json_encode( array() ), 'login_key' => $method, 'login_enabled' => 0, 'login_order' => $max ) );

заменить на

			try
		{
			$max++;
			\IPS\Db::i()->insert( 'core_login_handlers', array( 'login_settings' => json_encode( array() ), 'login_key' => $method, 'login_enabled' => 0, 'login_order' => $max ) );
		}
		catch (\Exception $e){}

  • Author

Отлично.

Правда дальше еще одна появилась

Duplicate entry 'm-409' for key 'leader_type' 
/var/www/***/data/www/****/applications/core/setup/upg_40000/upgrade.php::1731
INSERT INTO `core_leaders` ( `leader_type`, `leader_type_id`, `leader_group_id` ) VALUES ( ?, ?, ? )

Тоже дубли. Только в модераторах.

 

			\IPS\Db::i()->insert( 'core_leaders', array( 'leader_type' => $moderator['type'], 'leader_type_id' => $moderator['id'], 'leader_group_id' => $groupId ) );

заменить на

			try
		{
			\IPS\Db::i()->insert( 'core_leaders', array( 'leader_type' => $moderator['type'], 'leader_type_id' => $moderator['id'], 'leader_group_id' => $groupId ) );
		}
		catch (\Exception $e)
		{
			\IPS\Log::log($e, 'upgrade_core_leaders');
		}

Если не нужны логи (после обновления можно посмотреть в АЦ), удалите

\IPS\Log::log($e, 'upgrade_core_leaders');

  • Author

Все просто отлично! Спасибо огромное просто!

Наверное еще что-то не так

Column count doesn't match value count at row 1 
/var/www/***/data/www/****/applications/core/setup/upg_100010/upgrade.php::50
INSERT INTO `core_theme_resources` SELECT `image_id` AS `resource_id`, `image_set_id` AS `resource_set_id`, `image_app` AS `resource_app`, `image_location` AS `resource_location`, `image_path` AS `resource_path`, `image_name` AS `resource_name`, `image_added` AS `resource_added`, `image_filename` AS `resource_filename`, `image_plugin` AS `resource_plugin`, `image_data` AS `resource_data` FROM `core_theme_images`

 

\IPS\Db::i()->insert( 'core_theme_resources', \IPS\Db::i()->select( $mappedColumns, 'core_theme_images' ) );

На что менять?)

Edited by salex

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

 

На что менять?)

Пробуем выше добавить

$mappedColumns[] = '0 AS `resource_user_edited`';

  • Author

Спасибо! Все прошло на ура. Начал все сначала и обновление почти прошло!

Key column 'index_tags' doesn't exist in table 
/var/www/vh126273/data/www/***/applications/core/setup/upg_101000/queries.json - query #14

Я так понял, что здесь

 "14": {
       "method": "addIndex",
       "params": [
           "core_search_index",
           {
               "type": "fulltext",
               "name": "index_tags",
               "columns": [
                   "index_tags"
               ],
               "length": [
                   250
               ]
           }
       ]
   },

Edited by salex

Я так понял, что здесь

Такого столбца и индекса нет в таблице. Можно уничтожить

  • Author

Уничтожил. Вроде бы обновился, но не могу понять почему папки с css_built и javascript_core создаются в папке uploads, а внешний вид админки и форума без css. В консоли браузера показывает ошибки, что не может найти css_built но не в папке uploads, а в корне. В настройках везде прописаны пути до uploads. (подопечный - forum.мойсайт)

В настройках везде прописаны пути до uploads

Пересохранять пробовали "System -> Files -> Storage Settings"

+ почистить кеш через АЦ.

  • Author

Да. Пересохранил и все получилось. Спасибо огромное.

  • Author

Последний нубный вопрос по обновлению...

Обновление на основном теле прошло без ошибок (внес все правки сразу).

В разделе download все что было загружено уже не скачать. Код ошибки: 3D161/G

Есть ли шансы это как-то исправить или всеж придется заново все загружать?

 

Все. Разобрался. В настройках управления вложений указал нужные папки.

Edited by salex

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.