Can't create table (errno: 150)

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
#1 Андрей Колоденский
  • Группа: Пользователь
  • Сообщений: 24
  • Регистрация: 18.11.2010

18.04.2012 15:53

Добрый день!

захотелось посмотреть Российскую сборку Magento. скачал последнюю версию Magento (1.6.2.0), последнюю версию Российской сборки Magento (1.35.10), все установил, все встало нормально, работает на тестовом домене localhost.com

встал вопрос заливки базы по товарам из существующего магазина на Magento (1.4.2.0). Сделал резервную копию средствами Magento, скачал файл дампа на тестовый сервер, пробую развернуть дамп

mysql -u root magento < 1334735500_db

получаю ошибку

ERROR 1005 (HY000) at line 89: Can't create table './magento/admin_user.frm' (errno: 150)


покурил форум и гугл, в дампе исправил

/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;

на

SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;

и

/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;

на

SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;


не помогло, симптомы те же


что делаю не так?

#2 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8885
  • Регистрация: 20.02.2010

18.04.2012 16:05

Да, сервер баз данных MySQL пишет предупреждение Can't create table с кодом 150 в случае нарушения ссылочной целостности данных (условия такой целостности налагаются внешними ключами).

Решить проблему может временное отключение проверки ссылочной целостности на период импорта данных.

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

И, разумеется, данные из Magento 1.6.2.0 нельзя импортировать в Magento 1.4.2.0 — это бред полный.
Это как раз та самая элементарная аккуратность и здравый смысл, о которых я писал.

#3 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8885
  • Регистрация: 20.02.2010

18.04.2012 16:14

И наоборот — из Magento 1.4.2.0 импортировать таблицы в Magento 1.6.2.0 тоже нельзя, потому что структура данных от версии к версии отличается.

Правильный путь состоит в обновлении Magento 1.4.2.0 до современной версии.
При необходимости я предоставляю услугу обновления Magento.

В то же время, Российская сборка Magento совместима и с Magento 1.4, так что для использования Российской сборки обновление на современную версию Magento необязательно.

#4 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8885
  • Регистрация: 20.02.2010

18.04.2012 16:27

Если же достаточно перенести только товары, то можно воспользоваться стандартными для Magento инструментами экспорта и импорта товаров (Magento DataFlow, пункт административного меню «Система» → «Импорт/Экспорт»).

#5 Андрей Колоденский
  • Группа: Пользователь
  • Сообщений: 24
  • Регистрация: 18.11.2010

18.04.2012 16:44

если я правильно помню, Импорт/Экспорт товаров переносит только товарные позиции, без переноса структуры рубрикатора

#6 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8885
  • Регистрация: 20.02.2010

18.04.2012 16:46

Да. Поэтому для качественного обновления Magento надо либо аккуратно и квалифицированно выполнить указанную выше инструкцию, либо обратиться к специалисту, но никак не импортировать дамп базы через MySQL.

#7 Андрей Колоденский
  • Группа: Пользователь
  • Сообщений: 24
  • Регистрация: 18.11.2010

18.04.2012 16:50

ок, понял

видимо попробуем пойти путем установки версии 1.4.2.0 + Российская сборка, с последующим обновлением Magento

#8 Андрей Колоденский
  • Группа: Пользователь
  • Сообщений: 24
  • Регистрация: 18.11.2010

18.04.2012 18:55

установил версию 1.4.2.0, поставил Российскую сборку, сдампил резервную копию с "боевой" Magento, залил базу на localhost.com, заливка прошла успешно, но:

такая ошибка:

a:5:{i:0;s:243:"Error in file: "./www/app/code/local/Df/CustomerBalance/sql/df_customerbalance_setup/mysql4-install-1.0.0.php" - SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'df_customerbalance' already exists";i:1;s:1052:"
#0 ./www/app/code/core/Mage/Core/Model/Resource/Setup.php(390): Mage::exception('Mage_Core', 'Error in file: ...')
#1 ./www/app/code/core/Mage/Core/Model/Resource/Setup.php(276): Mage_Core_Model_Resource_Setup->_modifyResourceDb('install', '', '1.0.0')
#2 ./www/app/code/core/Mage/Core/Model/Resource/Setup.php(240): Mage_Core_Model_Resource_Setup->_installResourceDb('1.0.0')
#3 ./www/app/code/core/Mage/Core/Model/Resource/Setup.php(161): Mage_Core_Model_Resource_Setup->applyUpdates()
#4 ./www/app/code/core/Mage/Core/Model/App.php(363): Mage_Core_Model_Resource_Setup::applyAllUpdates()
#5 ./www/app/code/core/Mage/Core/Model/App.php(295): Mage_Core_Model_App->_initModules()
#6 ./www/app/Mage.php(596): Mage_Core_Model_App->run(Array)
#7 ./www/index.php(80): Mage::run('', 'store')
#8 {main}";s:3:"url";s:11:"/index.php/";s:11:"script_name";s:10:"/index.php";s:4:"skin";s:7:"default";}

куда двигаться?

#9 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8885
  • Регистрация: 20.02.2010

18.04.2012 18:56

Одна тема — один вопрос.

Поделиться темой: