0

我需要通过迁移将属性/列添加到 Heroku.com(Rails 应用程序)上的生产数据库(Postgre)中的表中。当我进行迁移时,它看起来不错,但是当我查看表上的列时,它没有添加列!

我的开发数据库是 sqlite3,生产数据库是 postgre

我执行以下操作:

heroku run rails generate migration AddUtc_OffsetToEvents utc_offset:integer RAILS_ENV=production --app app-name-1111

它返回:

invoke  active_record
      create    db/migrate/20130304070946_add_utc_offset_to_events.rb

然后我运行迁移

heroku run rake db:migrate RAILS_ENV=production --app app-name-1111 

接着:

heroku restart

当我跑

heroku pg:psql HEROKU_POSTGRESQL_GRAY_URL --app app-name-1111

并检查表格的列:

\d+ events

它仍然没有 utc_offset 列,并且在执行之前的 cmds 时不会显示任何错误。

有什么想法或提示吗?

4

2 回答 2

2

看起来你正在打几个电话heroku run

每次您这样做时heroku run,它都会使用您的最新代码启动一个全新的测功机,并且当运行结束时,该测功机将被销毁。所以第二次 heroku 运行没有在第一次创建迁移文件。

由于您已经熟悉 psql,您可以直接使用ALTER TABLE。否则,您需要检查您的代码迁移到git push heroku masterheroku,然后运行它。

于 2013-03-05T00:15:36.847 回答
0

为什么不直接下载代码、添加迁移并推送更改?之后,只需在应用程序上运行 heroku run rake db:migrate。

于 2013-03-05T14:35:23.130 回答