2014-09-29 3 views
0

제목이 거의 다 나와 있지만 조금만 들어가려고합니다. 더 detai. 저는 기본적으로 역할 기반 권한이 "해결 된 문제"이며 Rolify가 내가 만든 것보다 나은 해결책이라는 것을 알기 전에 자신의 역할 기반 권한 시스템을 만들었습니다. 나는 Rolify 코드 내 코드를 대체하지만 역할 테이블이 이미 등 데이터베이스 내에 존재하는 것을롤 플레잉으로 자체 작성한 역할 코드를 대체하고 싶지만 기존 마이 그 레이션 삭제/실행 취소 방법을 잘 모르는 중입니다

단순히 저를 알려
rake db:migrate 

실행하라고 요구하는 오류로 계속 실행하려면 내 성향은 단순히 역할 테이블을 제거하는 마이그레이션을 작성하는 것이지만 이것이 올바른 일입니까?

답변

0

내 제안은 먼저 다음을 사용하여 실제로 역할 테이블을 삭제하는 것이 적절한 해결책인지 확인하는 것입니다.

rake db:migrate:down VERSION=MigrationTimestamp

당신은 항상과 같은 명령을 실행할 수 있습니다 대신에 '최대'테이블을 다시 만들려면 '아래로'. 물론 테이블을 떨어 뜨리면 테이블에있는 모든 레코드가 손실됩니다. 필요할 경우 데이터를 백업하십시오.

이 개인적인 의견은 실제로 역할 테이블을 만드는 마이그레이션이 해당 테이블을 업데이트하는 마이그레이션과 함께 삭제하는 것입니다. 역할 테이블을 제거하는 것이 올바른 해결책 인 경우입니다. 그런 다음, 다음 릴리스에서 역할 테이블을 삭제하기 위해 사용할 rake 태스크를 작성하십시오. 그렇게하면 다른 사람이 앞으로 귀하의 코드베이스에서 작업해야한다면 테이블을 생성하는 이전 작업과 해당 테이블이 실행될 때 동일한 테이블을 삭제하는 마이그레이션을 수행하지 않아도됩니다. 권한 부여 보석에 대한 업그레이드가 완료되었으며 더 이상 역할 테이블이 필요 없다는 것을 문서화하는 한, 마이그레이션에서 발생한 이력은 향후 작업을 위해 실제로 필요하지 않습니다.

피사체에있는 동안 ... 필자는 선언적 인증 보석을 사용하여 Rolify보다 훨씬 효과적이라고 생각합니다. 나는 그대로 유지되고 D.A.와 잘 작동하는 별도의 역할 표를 가지고 있습니다. 보석. 그것은 확실히 체크 아웃 가치가있다.