Symfony 교리를 해결하는 방법 : Build-Schema Error (알 수없는 관계 별칭 table_name)

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

문제

이 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
도움이 되었습니까?

해결책

모델 및 캐시 문제입니다 (모든 구성 재설정 및 모델 및 데이터 파일을 지우기)

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

symfony cc

Builder.php 패치를 사용하여 Symfony 1.2에서 교리 대상 getters 가이 오류를 시전하도록 두 번째 응답을 찾았습니다.

다른 팁

Symfony 1.4와 함께 일하는 사람들은 구식 교리 모델을 청소하는 작업이 있다는 것을 알게되어 기쁩니다. "./symfony 교리 : 깨끗한"불쾌한 "이 모델은 더 이상 문제가 존재하지 않는다".

테이블 중 하나가 'table_name'이라는 다른 테이블을 참조하는 것으로 보입니다 (교리의 오류 출력 대체에 끔찍한 문제가없는 한). 모든 테이블의 관계를 확인 하여이 문제를 일으키는 범인을 찾아 관계를 제거하고 (실제로 'table_name'이라는 테이블이 있습니까?)이 문제를 해결하십시오.

테이블이 많으면 전체 데이터베이스를 임시 테스트 DB로 복제 한 다음 테이블의 절반을 떨어 뜨려 생성 명령을 다시 실행할 수 있습니다. 오류가 발생하지 않으면 테이블 청크가 문제가되지 않으므로 기존 테이블을 떨어 뜨리고 나머지 절반을 복원하십시오. 동일한 오류가 여전히 발생하면 범인은 이제 현재 청크 내에 있습니다. 하나의 테이블 만 오류가 발생할 때까지 반쪽을 계속 떨어 뜨리면 오류 소스를 찾을 수 있습니다.

문제의 정확한 원인을 찾는 데 여전히 문제가있는 경우 SQL에서 문제 테이블의 구조와 작업중 인 교리 버전을 제공 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top