我将迁移推送到生产数据库时遇到问题.
问题:
我已将其迁移到生产数据库:
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)============================ ====
考虑到新的数据库模式现在正在生产中,我已经部署了执行某些操作的代码:length.
在生产中,我收到以下错误:
未定义的方法`length ='for#
我做了heroku rollback并将应用程序降级到最新的可靠版本.
然后(可能有点太晚了)我发现我必须heroku restart在应用程序中加载新索引.我这样做了好几次.
我打开控制台然后检查Book.column_names,但没有length
我heroku run rake db:migrate接着又做heroku restart了一次,没有变化.
我已经尝试将另一列迁移到生产数据库,但根本没有得到任何消息,甚至没有得到第2页的消息.
更新
根据Philipe的答案,我做了一些额外的步骤:
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的回答是:要提交的更改:(使用"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
然后我做了git commit -m "Updating the schema". …