2013-10-22 3 views
0

이전에 다른 용도로 사용 된 테이블의 용도를 변경하려고합니다. 그래서 테이블을 제거하고 새 열을 새로 시작하기위한 마이그레이션을 만듭니다. 그러나 나는 테이블을 이미 삭제했기 때문에 마이그레이션을 롤백하고 다시 실행하면 오류가 발생하는 문제에 직면하고 있습니다. 이 문제를 어떻게 해결할 수 있습니까?Rails 이전 데이터베이스 마이그레이션 (아직 삭제되지 않은 경우에만)

class CreateNewTeams < ActiveRecord::Migration 
    def self.up 
    drop_table :teams 
    create_table :teams do |f| 
     # ... 
    end 
    end 

    def self.down 
    drop_table :teams 
    end 
end 

답변

0

옵션은 (존재하는 경우) 만들기 전에 테이블을 삭제하기 위해 작성되었습니다. docs

+0

아, 고마워요! 나는 그 깃발이 무엇을위한 것인지 궁금해했다. – Andrew

0

사용자는 마이그레이션을 실행하기 전의 상태로 데이터베이스를 유지해야합니다. 변경할 필요가 일부 열 이름을 변경하는 경우

class CreateNewTeams < ActiveRecord::Migration 
    def self.up 
    drop_table :teams 
    create_table :teams do |f| 
     # new purpose 
    end 
    end 

    def self.down 
    drop_table :teams 
    create_table :teams do |f| 
     # old purpose 
    end 
    end 
end 

, 귀하의 경우 그래서, 테이블을 삭제하지 않고 그것을 할. 실제 사용 중이며 광범위하게 사용되는 응용 프로그램에서이 작업을 수행하는 경우이 변경 사항을 배포하면 가동 중지 시간이 발생할 것입니다. 또한 염두에두고

+0

좋은 점은 롤백 테이블을 삭제하지 않아야한다는 것입니다. – Andrew