symfony 1.4.8+ doctrine -> doctrine: необходима фатальная ошибка сборки схемы /tmp/tmp_doctrine/User.php - PullRequest
2 голосов
/ 16 октября 2010

Я пробую Symfony, поэтому я начал устанавливать его на удаленном компьютере через ssh (обычный пользователь, без root-доступа)

при переходе к части, где я хочу сгенерировать db-схему из существующей базы данных mysql с доктриной, введя следующую команду:

./symfony doctrine:build-schema

я получаю следующие ошибки:

Warning: require_once(): '/tmp/tmp_doctrine_models/User.php' is not a valid path for inclusions, since it includes /tmp/ in /home/users/mpretftp/test1/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Core.php on line 668

Warning: require_once(/tmp/tmp_doctrine_models/User.php): failed to open stream: Success in /home/users/mpretftp/test1/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Core.php on line 668

Fatal error: require_once(): Failed opening required '/tmp/tmp_doctrine_models/User.php' (include_path='.:/usr/share/php:/usr/share/pear') in /home/users/mpretftp/test1/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Core.php on line 668

«сделав это наоборот», создайте файл database.yaml следующим образом:

User:
  actAs: { Timestampable: ~  }
  columns:
    id: { type: integer, notnull: true }
    hash: { type: string(255), notnull: true }

затем пробую учение ./symfony: build --model Я получаю следующую, даже более странную ошибку:

 ./symfony doctrine:build --model
>> doctrine  generating model classes
>> file+     /tmp/doctrine_schema_70737.yml


  Invalid schema element named "0" at path "Warning"

также, у хостера (удалённой машины) есть комментарий к сообщению об ошибке joomla. С одной стороны, я понимаю, что Joomla не имеет ничего общего с Symfony или доктриной. Но сообщение об ошибке напоминает первое предупреждение, которое я вставил выше: «... не является допустимым путем для включений, поскольку оно включает в себя« / tmp / »в ....». Предлагаемое решение для ошибки joomla - это изменение / tmp / path на / home / users / user / tmp в конфигурации joomla

Моим лучшим предположением было бы то, что мне нужно убедить доктрину в использовании и другого пути. К сожалению, я не могу найти такой вариант конфигурации для доктрины.

Может кто-нибудь сказать мне, как установить путь tmp для doctrine / symfony или php или даже для среды ?, или где продолжить «отладку»?

1 Ответ

0 голосов
/ 16 октября 2010

Doctrine использует PHP sys_get_temp_dir для определения временного пути.Я выяснил это путем поиска в источнике Doctrine «tmp_doctrine_models».

Кажется немного странным, что ваш хост не разрешает писать временный каталог.

...