enitiy (판매)에서 속성 (티저)을 삭제했습니다. 나는 데이터베이스 & entites 업데이트 CLI를 사용 :Symfony2 : 쿼리에서 여전히 사용중인 삭제 된 속성
$ php app/console doctrine:schema:update --complete --force
$ php app/console doctrine:generate:entities Our --no-backup
$ php app/console doctrine:cache:clear-metadata
$ php app/console doctrine:cache:clear-result
을 그리고 난 캐시 삭제 :
$qb = $this->createQueryBuilder('s');
$q = $qb
->select('s.id')
->leftJoin('s.bills','b')
->where('b.paid = true')
->getQuery()
->getResult();
이 : 지금이 쿼리 빌더에 의해 생성 된 쿼리
$ php app/console cache:clear --no-optional-warmers --no-warmup
을 이전 속성을 포함하는 select 문을 생성하기 때문에 오류가 발생합니다.
Column not found: 1054 Unknown column 's0_.teaser' in 'field list'
Doctrine이 쿼리를 실행하는 방법을 이해하려고 시도했지만 문제의 원인을 찾지 못했습니다. 누군가 단서가 있습니까?
업데이트 : 쿼리에서 DQL을 가져 와서 querybuilder에서 생성 한 다음 새 쿼리를 만드는 데 사용했습니다. 같은 오류. 그렇다면 DQL에서 한 단어를 대문자에서 소문자로 바 꾸었습니다 (왼쪽은 입니다. 왼쪽).
$q = $this->getEntityManager()
->createQuery('SELECT s,b FROM Our\BuyBundle\Entity\Sale s Left JOIN s.bills b WHERE s.id IN (:randomIds)')
->setParameter('randomIds', $allSaleIds);
DQL 문은 어딘가에 캐시되어 있으므로 DQL을 해시로 사용하여 해당 SQL 문을 가져 오는 것 같습니다. 나는 캐시 된 정보를 어디에서 어떻게 지우는 지 아직 확실히 알 수 없습니다. 특히 사실 나는 app/cache 폴더의 모든 내용을 삭제했다.
업데이트 2 : 해결책을 찾았습니다. 콘솔이 그렇게 할 수 없기 때문에 수동으로 APC 캐시를 지워야했습니다.
$ php app/console doctrine:cache:clear-query
을 그리고 문제가 해결되지 않을 경우, 귀하의 APC 캐시를 지우 : 그래서 솔루션이 될 것입니다.
당신은'app/console cache : clear --evn = prod'을 실행 했습니까? 또한'rm -rf app/cache/*'를 시도하십시오 –
예, 모든 환경에서 캐시를 삭제했습니다. 그 엔티티를 사용하는 모든 querybuilder querys에서 오류가 발생합니다. –
문제가있는 검색어가 맞습니까? 누구나 알고있는 모든 프로젝트's.teaser'에서 검색해보십시오. –