Ruby on rails Rails 3迁移在Heroku上不起作用

Ruby on rails Rails 3迁移在Heroku上不起作用,ruby-on-rails,ruby-on-rails-3,heroku,Ruby On Rails,Ruby On Rails 3,Heroku,我有一个非常简单的迁移,它是使用生成器创建的 class AddEmailToUsers < ActiveRecord::Migration def self.up add_column :users, :email, :string end def self.down remove_column :users, :email end end 我在Heroku上有两个版本的应用程序。首先,它工作得很好。另一方面,该列根本不显示 heroku rake d

我有一个非常简单的迁移,它是使用生成器创建的

class AddEmailToUsers < ActiveRecord::Migration
  def self.up
    add_column :users, :email, :string
  end

  def self.down
    remove_column :users, :email
  end
end
我在Heroku上有两个版本的应用程序。首先,它工作得很好。另一方面,该列根本不显示

heroku rake db:migrate的输出看起来正确:

==  AddEmailToUsers: migrating ================================================
-- add_column(:users, :email, :string)
   -> 0.0031s
==  AddEmailToUsers: migrated (0.0032s) =======================================
但专栏不在那里:

>> User.column_names
=> ["id", "created_at", "updated_at", "uid", "provider", "name", "role"]
(顺便说一下,我所有的数据库更改都是通过generator创建的迁移完成的;我自己也没有接触过SQL,也没有编辑过任何迁移文件。)

这是一个生产环境,因此不能删除表

对我可以尝试的事情有什么建议吗?

您运行了“heroku rake db:migrate”吗?这不是在本地运行迁移,而是在Heroku上运行迁移。

Heroku重新启动

为我解决了这个问题


我认为这是heroku系统中的一个错误。我刚刚给他们发了一封电子邮件,要求修复。

您重新启动了控制台吗?此外,检查heroku上的db以获取更新的表,以防万一。所谓“重新启动控制台”,是指再次运行heroku控制台吗?如果是,那么是的,我做了。我如何检查Heroku上的数据库?我可以直接在Heroku中运行SQL命令吗?不是这样,但是您可以在Heroku db:pull--tables用户中查看发生了什么,然后如果可能的话,可以在本地运行迁移后将表推回。谢谢您的评论。不知怎么的,它刚刚开始工作。让它工作起来的是在没有任何迁移的情况下将git推送到Heroku。不知道为什么。看起来Heroku里面可能有个bug。
>> User.column_names
=> ["id", "created_at", "updated_at", "uid", "provider", "name", "role"]