2013-12-14 5 views
7

나는 하나가 명령 줄에서 다음과 같은 방법을 사용할 수 있습니다, 즉 테이블이나 조인 테이블을 삭제하려면 다음과 같이하십시오 :레일 4 : 데이터베이스에서 테이블 테이블을 삭제 또는 결합하는 방법은 무엇입니까? 레일 4 문서 (<a href="http://guides.rubyonrails.org/migrations.html#creating-a-join-table" rel="nofollow">http://guides.rubyonrails.org/migrations.html#creating-a-join-table</a>)에서

drop_tabledrop_join_table을.

그러나 '블록을 제공해야한다'는 점도 추가되었습니다. 실행시 어떻게 보이는지 모르겠습니다.

여기 내 질문이 있습니다. 어떻게 테이블을 삭제하거나 조인 테이블을 삭제합니까?

또한 drop이라고하면 내 데이터베이스에서 삭제한다는 의미입니다. 마이그레이션을 삭제할 수는 없으며 공동 작업을 망쳐 버리기 때문에 마이그레이션을 롤백하는 것이 현명한 방법이 아니라는 것을 알고 있습니다. 따라서 마이그레이션 파일을 삭제하지 않고 마이그레이션을 롤백하는 것을 피하고 싶습니다.

데이터베이스를 채우기 위해 마이그레이션을 만들 때 실수를했습니다. 테이블의 열을 수정하는 방법 (새로운 테이블을 추가하고 이름을 바꾸고 삭제하는 방법)을 알고 있습니다. 테이블을 제거하는 방법을 모르겠습니다.

내 질문을 고려해 주셔서 감사합니다.

데이터베이스에서 테이블을 완전히 제거하고 싶습니다. 내 응용 프로그램은 drop_join_table 방법은 문서 drop_join_table

그것은 테이블 1 소요 테이블이 이름에 정의이다 레일 4.

답변

15

에서 실행되고 있습니다. 예 :이 개 테이블 categoriesproducts 이름이 있고,

그래서 당신이 원하는 이름으로 마이그레이션 파일을 생성 categories_products라는 이름의 테이블)에 가입, 당신은 가입 테이블을 삭제하는 코드를 작성 :

def change 
    drop_join_table :categories, :products 
end 

당신에게 drop_join_table 방법에 다른 옵션을 전달할 수 있으며 이러한 옵션은 create_join_table과 같습니다. 더 많은 옵션을 보려면이 방법을보십시오. 당신의 categorization 같은 이름의 후속 규칙이없는 테이블에 가입하면

예, 당신이 그것을 지정할 수 있습니다 :

def change 
    drop_table :table_name 
end 
:

def change 
    drop_join_table :categories, :products, table_name: categorization 
end 

테이블을 삭제하기 위해서는 drop_table 방법으로 간단합니다

다른 옵션은 create_table 방법과 같은 drop_table 방법으로 전달할 수 있습니다.

+0

안녕하세요 Kien, 이것은 위대한 brea입니다. kdown. 고맙습니다. – robertjewell