如何解决此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
答案 0 :(得分:2)
这是模型和缓存问题(重置所有配置和擦除模型和数据文件)
rm config/doctrine/schema.yml
rm -r cache/*
rm -r data/*
rm -r lib/model/doctrine/base
symfony cc
我发现第二个响应,使用builder.php补丁在symfony 1.2中使用doctrine对象getter也会出现此错误。
答案 1 :(得分:1)
答案 2 :(得分:0)
其中一个表似乎引用了另一个名为“table_name”的表(除非Doctrine的错误输出替换出现了严重错误)。检查所有表的关系,找出造成这种情况的罪魁祸首,如果它没有效(你实际上有一个名为'table_name'的表吗?)来解决这个问题就删除它。
如果您有很多表,可以尝试将整个数据库复制到临时测试数据库中,然后删除一半表并再次运行generate命令。如果你没有得到错误,你知道表的大块不是问题,所以删除现有的表并恢复另一半。如果仍然发生相同的错误,罪魁祸首现在在当前的块中。继续减半,直到你只剩下一个表格错误,你就会找到你的错误来源。
如果您仍然无法找到问题的确切原因,可以在SQL中提供问题表的结构,以及您正在使用的Doctrine版本。