2011-06-14 2 views
5

나는 Devise를 설치했고, 그 다음에는 내가 확인할 수있는 것을 추가했다.초기 create_table 레이크 이후에 작성할 열을 어떻게 추가합니까?

동일한 초기 마이그레이션으로 돌아가서 원하는 도우미의 주석을 제거하고 rake db : migrate를 다시 사용할 수 있습니까?

시도해 보니 작동하지 않는 것 같습니다. 그러나 후속 마이그레이션을 만드는 방법의 예는 보지 못했습니다.

감사합니다.

이것은 내가 뭘하려 :

1 class AddConfirmableToUsers < ActiveRecord::Migration 
    2 def self.up 
    3  change_table :users do |t| 
    4  t.confirmable 
    5  end 
    6  add_index :users, :confirmation_token, :unique => true 
    7 end 
    8  
    9 def self.down 
10  remove_column :users, :confirmation_token 
11 end 
12 
13 end 

답변

4

당신과 같이 적절한 열을 직접 추가 할 수 있는지 확인 :

class AddConfirmableToUsers < ActiveRecord::Migration 
    def self.up 
    change_table :users do |t| 
     t.string :confirmation_token 
     t.datetime :confirmed_at 
     t.datetime :confirmation_sent_at 
    end 

    add_index :users, :confirmation_token, :unique => true 
    end 

    def self.down 
    change_table :users do |t| 
     t.remove :confirmation_token, :confirmed_at, :confirmation_sent_at 
    end 

    remove_index :users, :confirmation_token 
    end 
end 
+0

좋아 나는이 작업을 수행하는 방법을 정확하게 확실하지 않았다, 그러나 이것은 무엇이다 I 내가 생각하기에 ... 위와 같이 도우미를 사용했는데, 그렇게해야합니까? – Angela

+0

헬퍼를 사용하는 것이 효과적 일 것이라고 생각하지만 실제로 시도한 적이 없습니다. – dpb

0

마이그레이션 작업을해야합니다. User 모델을 확인하여 :confirmable이 사용 설정되어 있는지 확인 했습니까? 기본적으로 주석 처리됩니다. 당신이 당신의 데이터가 손실 괜찮다면

당신은

> rake db:drop 

그렇지 않으면 당신은 단지 초기 마이그레이션을 편집하고 롤백을 수행 할 수 있습니다 할 수 있습니다.

# get the current migration version 
> rake db:version 
> Current version: ****************41 
> rake db:rollback ****************40 

변경 사항이

> rake db:migrate 
관련 문제