Неустранимая ошибка при переносе pimcore с сервера на локальный

Я переместил все свои файлы pimcore плюс базу данных с сервера на свой локальный хост и внес необходимые изменения в website/var/config/system.xml. Админка работает, а на вайде выдает ошибку:

Fatal error: Call to a member function getFielddefinitions() on a non-object in /var/www/html/pimcore/pimcore/models/Object/Localizedfield/Resource.php on line 179

Эта строка кода выдает ошибку:

$this->model->getClass()->getFielddefinition("localizedfields")->getFielddefinitions()

Системные требования и права доступа к файлам правильные.

В целях тестирования я установил новый проект pimcore в свою локальную систему, и он отлично работает.

Могу ли я внести какие-либо изменения в свою базу данных? Как я могу успешно запустить свой проект на локальном компьютере?


person Vinod VT    schedule 09.01.2015    source источник


Ответы (4)


Ошибка возникает, когда уже есть объекты, использующие класс.

Решение

  1. Войдите в бэкенд как администратор.
  2. Go to Settings > Object > Classes
  3. Для каждого из классов в левом дереве щелкните по ним, а затем нажмите Сохранить в правом нижнем углу. (Если не удается сохранить, просто создайте новый курс, нажав кнопку Добавить новый курс).

Теперь попробуйте загрузить файл fronend. Это будет работать.

person Vinod VT    schedule 16.01.2015

Pimcore использует представления базы данных для хранения данных объектов. При экспорте базы данных в определениях представлений также будет SECURITY DEFINER.

/*!50013 DEFINER=`prod-user`@`%` SQL SECURITY DEFINER */

  1. ВАРИАНТ: решение Vinot VT должно работать. Вы можете добиться того же, выполнив команду:

php pimcore/cli/console.php deployment:classes-rebuild

  1. ВАРИАНТ: используйте то же имя пользователя базы данных в локальной среде «prod-user», что полезно, если вы будете много импортировать базу данных prod.

  2. ВАРИАНТ: замените DEFINER=prod-user@% на DEFINER=local-user@% перед импортом базы данных

person fuzin    schedule 16.11.2017

Ты сможешь:

  • установите ‹debug›1‹/debug› в config.xml — это должно показать ошибку

  • если это не помогло, проверьте журнал ошибок apache и/или php.

person Rafal Gałka    schedule 09.01.2015

Нам нужно увидеть фактическую ошибку (как уже указал Винод).

Хотя я мог предположить:

Идентичны ли учетные данные базы данных (также известные как имя пользователя БД)? В противном случае вам может потребоваться удалить SECURITY DEFINER из дампа БД. См. раздел Удалить предложение DEFINER из дампов MySQL, чтобы узнать, как это сделать.

Другим источником ошибки может быть кеш. Используете ли вы файловый кеш Pimcore по умолчанию? Если это так, попробуйте удалить все файлы из веб-сайта/var/cache и веб-сайта/var/tmp.

Дайте нам знать, как это получилось.

person chluehr    schedule 09.01.2015
comment
@StephenMuecke Это предварительный ответ. Недостаточно хорошо для голосования, но предлагает решения проблемы. - person chrylis -cautiouslyoptimistic-; 10.01.2015