1

この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
4

3 に答える 3

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 のドクトリン オブジェクト ゲッターにもこのエラーをキャストさせる 2 番目の応答を見つけました。

于 2010-01-20T11:35:48.257 に答える
1

Symfony 1.4 で作業している人は、古い教義モデルをきれいにするタスクがあることを知って喜んでいるでしょう。「./symfony doctrine:clean」は、「そのモデルはもう存在しない」という厄介な問題を取り除きます。

于 2010-04-20T00:55:11.063 に答える
0

あなたのテーブルの 1 つは、'table_name' という別のテーブルを参照しているようです (Doctrine のエラー出力置換にひどく問題がある場合を除きます)。すべてのテーブルのリレーションをチェックして、これを引き起こしている原因を見つけ、有効でない場合はリレーションを削除して (実際に「table_name」というテーブルがありますか?)、この問題を修正します。

多数のテーブルがある場合は、データベース全体を一時的なテスト DB に複製してから、テーブルの半分を削除して、生成コマンドを再度実行できます。エラーが発生しない場合は、テーブルのチャンクが問題ではないことがわかっているので、既存のテーブルを削除して残りの半分を復元します。それでも同じエラーが発生する場合、原因は現在のチャンク内にあります。残りのテーブルが 1 つだけエラーになるまで半分を削除し続け、エラーの原因を見つけます。

問題の正確な原因を特定するのにまだ問題がある場合は、SQL での問題テーブルの構造と、使用している Doctrine のバージョンを提供してください。

于 2010-01-20T09:42:20.633 に答える