1

在我的 rails 应用程序中,我有一个模型Events。它有几个列是通过遵循本指南https://devcenter.heroku.com/articles/export-from-heroku-postgres创建的,然后执行rake db:schema:dump.

现在我想在Event模型中添加一些新列。我尝试编辑schema.rb并重新启动应用程序,但这似乎不起作用。有人知道正确的方法吗?

- - 编辑 - - - -

具体来说,我将此行添加Eventschema.rb.

t.datetime "date_time"

当我单击链接以在 rails 应用程序中添加事件时,我收到此错误:

undefined method `date_time' for #<Event:0x007fdb59a87118>
4

2 回答 2

2

schema.rb文件是数据库模式当前状态的表示,它是由数据库迁移过程写入的,而不是读取

如果要添加新列,请创建迁移

$ rails generate migration AddNewEventStuff
$ vim db/migrate/add_new_event_stuff*.rb

然后添加您的列:

class AddNewEventStuff < ActiveRecord::Migration
  def change
    add_column ...
  end
end

除了 之外的所有东西都add_column应该已经存在了。完成迁移后,执行 arake db:migrate即可。现在你应该看到你的schema.rb.

有关更多详细信息和构建迁移的不同方法,请参阅Ruby on Rails 迁移指南。

于 2012-11-16T03:55:07.050 回答
0

你应该试试heroku run rake db:schema:load。也就是说,这可能是错误的做法。相反,您应该通过迁移对架构进行更改,然后在其heroku run rake db:migrate上运行。

于 2012-11-16T03:50:42.903 回答