2014-03-28 1 views
1

스키마가있어 '잊어 버린'스키마라고 할 수 있습니다. 레일은 약 두 시간 동안 잘 인식하고 사용하는 것 같습니다. 그러나 알 수없는 이유 때문에 점점 시작합니다. 다음과 같은 오류가 발생했습니다.레일스 ActiveRecord가 내 PG 스키마를 잊어 버린 것 같습니다

ActiveRecord::StatementInvalid (PG::Error: ERROR: schema "forgotten" does not exist 
LINE 1: SELECT COUNT(*) FROM "forgotten"."stuff" 

ActionView::Template::Error (PG::Error: ERROR: schema "forgotten" does not exist 
LINE 1: ...COUNT(DISTINCT "forgotten"."other_stuff"."id") FROM "forgotten"."oth... 

거의 비슷한 레일이 내 스키마가 있다는 것을 잊었습니다.

내 database.yml을은 :

schema_search_path: 'forgotten, public' 

하지만이 같은 결과를 얻을 :

production: 
    adapter: postgresql 
    encoding: UTF8 
    username: xxxxxx 
    host: xxxxx 
    database: xxxxx 
    password: xxxxx 

나는 추가로 쉽게 좋겠어요.

내 응용 프로그램의 다른 부분은 공개 된 테이블을 사용하는데, 문제가 발생하기 시작하면 비공개 스키마를 사용하는 것이 아닙니다. 이 작업을 다시 수행하는 유일한 방법은 nginx/passenger를 다시 시작하는 것입니다. 그런 다음 스키마 문제가 다시 시작될 때까지 몇 시간 동안 문제가 다시 발생합니다.

그래서 나는이 문제에 뛰어 들고 그 문제를 해결하기를 희망하는 개발자에게 맡기고 싶습니다. 감사!

답변

0

그래서 그 다음은 내 문제를 해결했다 나타납니다 :이 명령은 스키마 검색 경로에 대한 PG 우선 순위의 상단에

ALTER DATABASE <database> SET search_path = forgotten, public; 

때문에이 영구적 인 해결책이 될 것이다. 방금 마이그레이션에 추가했습니다.

관련 문제