Rails:迁移错误

时间:2016-07-15 14:42:16

标签: ruby-on-rails ruby migration

当我去http://localhost:3000/时,我得到以下内容:

  

的ActiveRecord :: PendingMigrationError

     

迁移正在等待处理。要解决此问题,请运行:bin / rails db:migrate RAILS_ENV = development

摘录来源:

# Raises <tt>ActiveRecord::PendingMigrationError</tt> error if any migrations are pending.
def check_pending!(connection = Base.connection)
  raise ActiveRecord::PendingMigrationError if ActiveRecord::Migrator.needs_migration?(connection)
end
def load_schema_if_pending!

此外,当我尝试访问控制台中的heroku run rake db:migrate时,它说:

  

StandardError:发生了错误,此错误以及稍后的所有迁移   取消:PG :: DuplicateColumn:ERROR:关系列“email”   “用户”已经存在

我是ruby的新手,并跟随Mackenzie Child的devise tutorial。这是我完成第一个ruby应用程序的最后一步。

我很兴奋,期待着你的帮助! :)

2 个答案:

答案 0 :(得分:1)

在您的控制台中运行rake db:migrate 确保你在项目目录

答案 1 :(得分:0)

您使用设计生成器为User模型准备迁移。您的模型之前已经存在并且已经有email列。设计生成的迁移尝试创建相同的列,并且预计会失败,这就是您看到错误的原因:

  

PG :: DuplicateColumn:ERROR:关系“users”的列“email”已存在

要解决此问题,只需打开您的设计生成的迁移并删除看起来像这样的行:

t.string :email...

然后运行rake db:migrate

<强>更新

由于您的数据库似乎与您的迁移不同步,因此建议您从头开始重新创建它。

运行

rake db:drop db:create db:migrate

请注意,所有数据库数据都将被销毁。