小编rhj*_*hjs的帖子

Heroku运行rake db:migrate导致数据库没有变化,app重启了好几次

我将迁移推送到生产数据库时遇到问题.

问题:

  1. 我通过添加1列来更改数据库模式.
  2. 我已将其迁移到生产数据库:

    MacBook-Air-Mac:app msc $ rake db:migrate RAILS_ENV ="production"[RailsAdmin]默认情况下禁用RailsAdmin初始化.如果需要,请传递SKIP_RAILS_ADMIN_INITIALIZER = false.== AddLengthColumnToBooks:迁移========================================= - add_column( :books,:length,:integer) - > 0.0017s == AddLengthColumnToBooks:migrated(0.0019s)============================ ====

  3. 考虑到新的数据库模式现在正在生产中,我已经部署了执行某些操作的代码:length.

  4. 在生产中,我收到以下错误:

    未定义的方法`length ='for#

  5. 我做了heroku rollback并将应用程序降级到最新的可靠版本.

  6. 然后(可能有点太晚了)我发现我必须heroku restart在应用程序中加载新索引.我这样做了好几次.

  7. 我打开控制台然后检查Book.column_names,但没有length

  8. heroku run rake db:migrate接着又做heroku restart了一次,没有变化.

  9. 我已经尝试将另一列迁移到生产数据库,但根本没有得到任何消息,甚至没有得到第2页的消息.

我在这做错了什么?

更新

根据Philipe的答案,我做了一些额外的步骤:

  1. git add db/schema.rb,git add db/migrate/20130325103953_add_length_column_to_books.rb 和'git add db/migrate/20130401041910_add_duration_column_to_books.rb'.Git的回答是:
  2. 要提交的更改:(使用"git reset HEAD ..."取消暂停)

    新文件:db/migrate/20130325103953_add_length_column_to_books.rb新文件:db/migrate/20130401041910_add_duration_column_to_books.rb modified:db/schema.rb

  3. 然后我做了git commit -m "Updating the schema". …

migration rake heroku database-migration rails-migrations

16
推荐指数
1
解决办法
1万
查看次数