2017-03-10 1 views
0

소프트 삭제 된 레코드는 어떻게 선택합니까? 성능상의 이유로, 마이 그 레이션을 수행하기 전에 마다 테이블 내 레코드를 업데이트해야합니다.소프트 삭제 된 레코드는 어떻게 선택합니까?

이 작동하지 않습니다

SearchDefault.where('deleted_at IS NOT NULL') 

그것을이 SQL 생산하기 때문에 :

SELECT COUNT(*) FROM "search_defaults" WHERE "search_defaults"."deleted_at" IS NULL AND (deleted_at IS NOT NULL) 

이 나도 모든 레코드를 선택하는 솔루션, 또는 모든 일시 삭제 된 기록에 있음을 알 수있을 것를 .

답변

2

아마도이 조건을 추가하면 default_scope이됩니다. 시도 :

SearchDefault.unscoped.where('deleted_at IS NOT NULL') 
관련 문제