2011-03-02 94 views
4

工作我有使用发电机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 

它的伟大工程在当地

rake db:migrate 
rails console 
>> User.column_names 
=> ["id", "created_at", "updated_at", "uid", "provider", "name", "role", "email"] 

我在Heroku上的应用程序的两个版本创造了一个非常简单的迁移。其中之一,它工作正常。另一方面,这个专栏根本没有出现。

从Heroku的耙分贝输出:迁移期待权:

== 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"] 

(顺便说一句,我的所有数据库更改已通过发电机创建的迁移;我自己也没有碰过SQL,也没有编辑过任何迁移文件。)

这是一个生产环境,所以丢弃表不是一个选项。

我可以尝试的任何建议吗?

+0

你重新启动了你的控制台吗?另外,检查你的数据库在heroku上的更新表,以防万一。 – Shreyas 2011-03-02 18:34:18

+0

通过“重新启动控制台”,你的意思是再次运行heroku控制台?如果是这样,那么是的,我做到了。 – 2011-03-02 18:35:37

+0

如何检查Heroku上的数据库?我可以直接在Heroku中运行SQL命令吗? – 2011-03-02 18:36:01

回答

12

heroku restart

修复了我的问题。

我认为这是一个在heroku系统中的错误。我刚刚通过电子邮件向他们要求解决问题。

0

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

+0

谢谢,是的,我做到了。 – 2011-03-03 22:26:19