Ruby on rails 设计生产过程中的迁移

Ruby on rails 设计生产过程中的迁移,ruby-on-rails,devise,capistrano,Ruby On Rails,Devise,Capistrano,我正在使用Desive 2.1.0。在德夫身上,一切都很好。我刚刚尝试了cap部署:迁移到我在EC2中设置的新服务器,然后在Desive迁移时出错。我使用的是运行ruby 1.9.3的rvm。我的数据库是MySql,它通过AmazonRDS运行。它出错的迁移是: def self.up change_table(:users) do |t| t.database_authenticatable :null => false t.recoverable t.rememberab

我正在使用Desive 2.1.0。在德夫身上,一切都很好。我刚刚尝试了cap部署:迁移到我在EC2中设置的新服务器,然后在Desive迁移时出错。我使用的是运行ruby 1.9.3的rvm。我的数据库是MySql,它通过AmazonRDS运行。它出错的迁移是:

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
结束

出现此错误:ActiveRecord::ConnectionAdapters::Table:0x00000004eb8968的未定义方法“database_authenticatable”

我已经确认服务器上已经安装了Desive gem。我还尝试直接从服务器运行迁移,但失败了


有什么想法吗?

我相信迁移方法
数据库\u authenticable
已经从designe中删除。它们在2.0中被弃用,在2.1中被删除

您必须明确地创建必需的字段。比如说

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

请参阅设计维基

Desive 2.0删除了数据库迁移帮助程序,您需要自己列出数据库字段: