2012-06-18 55 views
0

我使用的是devise 2.1.0。在開發上,事情很好。我剛剛嘗試做一個cap部署:遷移到一臺新的服務器,我在EC2中安裝,並在設備遷移中出錯。我在使用ruby 1.9.3運行rvm。我的數據庫是MySql,並通過Amazon RDS運行。它會抱錯的遷移:設計生產中的中斷遷移

def self.up 
change_table(:users) do |t| 
    t.database_authenticatable :null => false 
    t.recoverable 
    t.rememberable 
    t.trackable 
end 

add_index :users, :email,    :unique => true 
add_index :users, :reset_password_token, :unique => true 

與此錯誤:未定義的方法`database_authenticatable」 ActiveRecord的:: ConnectionAdapters ::表:0x00000004eb8968

我已經證實了色器件寶石已經安裝在服務器上。我也嘗試直接從服務器運行遷移,並且失敗。

任何想法是怎麼回事?

+0

Devise 2.0刪除了數據庫遷移助手,您需要自己列出數據庫字段:https://github.com/plataformatec/devise/wiki/How-To:-Upgrade-to-Devise-2.0-migration-schema -樣式 – pjumble

回答

1

我相信遷移方法database_authenticatable已經從devise中刪除。它們在2.0中被棄用,在2.1中被刪除。

您必須創建必要的字段明示。例如

def self.up 
change_table(:users) do |t| 
    t.string :email 
    t.string :encrypted_password 
    t.timestamps 
end 

請參閱Devise wiki上的How To: Upgrade to Devise 2.0 migration schema style