comment résoudre la doctrine symfony: erreur de construction (alias de relation inconnue nom_table)

StackOverflow https://stackoverflow.com/questions/1622808

Question

comment résoudre cette erreur 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
Était-ce utile?

La solution

Il s'agit d'un problème de modèle et de cache (réinitialisez toutes les configurations et effacez les fichiers de modèle et de données)

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

symfony cc

J'ai trouvé une deuxième réponse, en utilisant le correctif builder.php pour que les getters d'objet doctrine dans Symfony 1.2 transmettent également cette erreur.

Autres conseils

Ceux qui travaillent avec Symfony 1.4 seront heureux de savoir qu’il est temps de nettoyer les modèles de doctrine obsolètes. & doctrine; ./ doctrine symfony: clean " se débarrasser de ces méchants "ce modèle n'existent plus de problèmes".

L'une de vos tables semble référencer une autre table appelée 'nom_table' (à moins que quelque chose ne se passe pas très bien avec la substitution de la sortie d'erreur de Doctrine). Vérifiez les relations sur toutes vos tables pour trouver le coupable et supprimez-la si elle n'est pas valide (avez-vous une table appelée 'nom_table'?) Pour résoudre ce problème.

Si vous avez beaucoup de tables, vous pouvez essayer de répliquer la totalité de votre base de données dans une base de test temporaire, puis supprimer la moitié des tables et réexécuter la commande generate. Si vous n'obtenez pas l'erreur, vous savez que le bloc de tables n'est pas le problème, alors supprimez les tables existantes et restaurez l'autre moitié. Si la même erreur se produit toujours, le coupable se trouve maintenant dans le bloc actuel. Continuez à laisser tomber les moitiés jusqu'à ce qu'il ne vous reste qu'une seule table avec une erreur et que vous ayez trouvé la source de votre erreur.

Si vous rencontrez toujours des problèmes pour localiser la cause exacte du problème, vous pouvez indiquer la structure de votre table de problèmes en SQL, ainsi que la version de Doctrine avec laquelle vous travaillez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top