我正在尝试安装我已经运行“rake db:migrate”的设备,它给了我一个我能够克服的错误。知道我何时运行 db:migrate 再次给我一个错误
Duplicate column name 'encrypted_password'
似乎已经运行了一些迁移命令并更新了表。有没有办法检查我是否已经运行了最后一次迁移以及是否有我需要的更新表?
我正在尝试安装我已经运行“rake db:migrate”的设备,它给了我一个我能够克服的错误。知道我何时运行 db:migrate 再次给我一个错误
Duplicate column name 'encrypted_password'
似乎已经运行了一些迁移命令并更新了表。有没有办法检查我是否已经运行了最后一次迁移以及是否有我需要的更新表?
要检查上次运行的迁移,请在 Rails 控制台中输入以下内容:
> ActiveRecord::Migrator.current_version
(0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations"
=> 20130617073557
或者,您可以从命令行运行以下 rake 命令:
rake db:migrate:status
如果您确实有命名冲突,我建议您在所有设计迁移上运行反向迁移并重试。作为最后的权宜之计,您可以从迁移中删除该行 t.string :encrypted_password, :null => false, :default => ""
,但显然,这不是最佳选择,因为它表明您的 Devise 安装有问题。