Как решить доктрину Symfony: ошибка схемы сборки (Неизвестный псевдоним отношения имя_таблицы) - PullRequest
1 голос
/ 26 октября 2009

как решить эту ошибку Symfony:

C:\inetpub\wwwroot\project\trunk\preprod\signup>php symfony doctrine:build-schema --trace
>> doctrine  generating yaml schema from database


  [sfException]
  Unknown relation alias table_name


Exception trace:
  at C:\inetpub\wwwroot\project\trunk\preprod\signup\lib\vendor\symfony\lib\plugins\sfDoctrinePlugin\lib\cli\sfDoctrineCli.class.php:69
 sfDoctrineCli->notifyException at C:\inetpub\wwwroot\ project\trunk\preprod\signup\lib\vendor\symfony\lib\plugins\sfDoctrinePlugin\lib\ven
dor\doctrine\Doctrine\Cli.php:93
 Doctrine_Cli->run at C:\inetpub\wwwroot\project\trunk\preprod\signup\lib\vendor\symfony\lib\plugins\sfDoctrinePlugin\lib\task\sfDoctrineB
aseTask.class.php:112
 sfDoctrineBaseTask->callDoctrineCli at C:\inetpub\wwwroot\project\trunk\preprod\signup\lib\vendor\symfony\lib\plugins\sfDoctrinePlugin\li
b\task\sfDoctrineBuildSchemaTask.class.php:57
 sfDoctrineBuildSchemaTask->execute at C:\inetpub\wwwroot\project\trunk\preprod\signup\lib\vendor\symfony\lib\task\sfBaseTask.class.php:63

 sfBaseTask->doRun at C:\inetpub\wwwroot\project\trunk\preprod\signup\lib\vendor\symfony\lib\task\sfTask.class.php:77
 sfTask->runFromCLI at C:\inetpub\wwwroot\ project\trunk\preprod\signup\lib\vendor\symfony\lib\command\sfSymfonyCommandApplication.class.ph
p:76
 sfSymfonyCommandApplication->run at C:\inetpub\wwwroot\project\trunk\preprod\signup\lib\vendor\symfony\lib\command\cli.php:20
 include at C:\inetpub\wwwroot\project\trunk\preprod\signup\symfony:14

Ответы [ 3 ]

2 голосов
/ 20 января 2010

Это проблема модели и кеша (сброс настроек и удаление модели и файлов данных)

rm config/doctrine/schema.yml
rm -r cache/*
rm -r data/*
rm -r lib/model/doctrine/base

symfony cc

Я нашел второй ответ, используя патч builder.php, чтобы получатели объектов доктрины в Symfony 1.2 также приводили к этой ошибке.

1 голос
/ 20 апреля 2010

те, кто работает с Symfony 1.4, будут рады узнать, что существует задача очистки устаревших моделей доктрин. "./symfony doctrine: clean" избавит от тех мерзостей ", что у модели больше нет проблем".

0 голосов
/ 20 января 2010

Кажется, что одна из ваших таблиц ссылается на другую таблицу с именем 'имя_таблицы' (если в замене вывода ошибок Doctrine нет ничего ужасного). Проверьте отношения на всех ваших таблицах, чтобы найти виновника, вызывающего это, и удалите отношение, если оно недопустимо (у вас действительно есть таблица с именем 'table_name'?), Чтобы решить эту проблему.

Если у вас много таблиц, вы можете попробовать скопировать всю базу данных во временную тестовую БД, а затем отбросить половину таблиц и снова выполнить команду generate. Если вы не получили сообщение об ошибке, вы знаете, что порция таблиц не является проблемой, поэтому удалите существующие таблицы и восстановите вторую половину. Если та же самая ошибка все еще происходит, преступник теперь находится в пределах текущего чанка. Продолжайте сбрасывать половинки до тех пор, пока не останется только одна таблица с ошибками, и вы не найдете свой источник ошибок.

Если у вас все еще есть проблемы с поиском точной причины проблемы, можете ли вы указать структуру таблицы проблем в SQL, а также с какой версией Doctrine вы работаете.

...