2017-02-07 6 views
1

레일스 그룹 프로젝트에서 루비 작업을하는 동안 my schema.rb 파일에서 마이그레이션 기록 파일과 일치하지 않는 테이블 두 개를 발견했습니다. 의도하지 않은 테이블의 스키마 파일을 정리하는 레이크 명령이 있나요? 레일 용 스키마 파일의 원하지 않는 테이블

나는 rake -T에서 명령을 시도하지만 스키마 파일을 리메이크 수를 찾지 못했습니다.

rake db:dump 스키마 파일을 변경하지 않았다.

rake db:schema:dump 또한 스키마 파일을 변경하지 않은 것으로 보입니다. 나는이 작업을 수행하는 가장 안전한 방법은 그래서 스키마에서 제거뿐만 아니라 존재하는 경우 테이블 검사 드롭해야이

drop_table :bad_table_names if (table_exists? :bad_table_names) 

같은 것이라고 말할 것입니다

+0

schema.rb 파일을 삭제하고 db : schema : dump를 다시 실행하십시오. – eiko

+0

@eiko 그러나'schema.rb'는'db : schema : dump'가 생성하는 데이터베이스의 표현이며, 문제는 유실이 있다는 것입니다 데이터베이스의 테이블. –

+0

@muistooshort rake가 schema.rb가 이미 최신이라고 생각했기 때문에 덤프는 아무 것도하지 않을 때가 끔찍한 메모리가있을 수 있습니다. 나는 그것이 시도하는 데 단지 2 초가 걸릴 것이고, 발사의 가치가있는 것이라고 상상했다. 하지만 DB 자체의 문제 일 가능성은 옳습니다. – eiko

답변

1

. 그렇지 않으면 그냥 안전하게 지나갈 것입니다.

+0

당신이 쓴 것은 레이크 명령이 아니라 원치 않는 테이블을 삭제하기위한 다른 마이그레이션 파일을 실행하는 것입니다. – Ian

+0

그것의 이전 –

0

db:schema:dump은 데이터베이스에있는 것과 스키마를 만듭니다. 데이터베이스에서 테이블을 삭제 한 다음 다시 실행하면 테이블이 제거됩니다.

0

rake db:migrate 현재의 DB 상태와 스키마 파일을 업데이트해야합니다.