2014-09-02 5 views
5

Rails 4.1과 PostgreSQL을 사용하고 있는데 foreigner gem을 사용하여 외래 키 제약 조건을 만듭니다. 하지만 fixtures에 문제가 있습니다. 레일스에서 ​​외래 키가있는 데이터베이스에서 테스트 및 치구를 사용하는 방법은 무엇입니까?

나는 실행하면 :

spring rake test 

내가 같은 오류가있어 다음

ActiveRecord::InvalidForeignKey: PG::ForeignKeyViolation: ERROR: update or delete on table "pessoas" violates foreign key constraint "pacientes_pessoa_id_fk" on table "pacientes" 
DETAIL: Key (id)=(980190962) is still referenced from table "pacientes". 
: DELETE FROM "pessoas" 

나는 해결 방법을 발견
RAILS_ENV=test spring rake db:reset && spring rake test 

내가 어떤 종류를 얻을 : 데이터베이스를 다시 rake db:fixture:load을 사용하여 조명 데이터베이스를 개발 데이터베이스에 시드하려고하면 오류가 발생합니다.

이미 픽스처로드 순서를 test_helper.rb으로 변경하려고했지만 충분하지 않았습니다.

누군가 그것을 고치는 법을 알고 있습니까? 나는 웹에서 많은 것을 찾았고 해결책을 찾지 못했습니다.

+0

이것으로 어떤 발전이 있겠습니까? –

+0

동시에 여러 레이크 스크립트를 실행할 수 있습니다.'RAILS_ENV = test spring rake db : reset test' – zeeraw

답변

2

그래서 실제로 제대로 작동하는지는 알지만 말할 수는 없습니다.

사용자를 SUPERUSER로 설정해야합니다.

제 경우 Cloud 9를 사용하면 "우분투"로 로그인 한 사용자가 있습니다.

나는 및 유형 (실제로 C9 올바르게 액세스 할 수 두 번 SUDO)는 sudo -u 포스트 그레스 psql를 입력 :

ALTER USER 우분투 수퍼 유저;

종료하면 제대로 작동합니다.

tail log/test.rb를 실행하면 통합 테스트를 실행할 때 PG : InsufficientPrivlege : ERROR가 표시되어 사용자에게 충분한 권한이 부여되지 않습니다. 프로덕션에서 이것을하고 싶지는 않을 것입니다. 그러나 제 제작은 헤로 쿠에 있습니다. 그래서 저는 좋습니다.