rhj*_*hjs 16 migration rake heroku database-migration rails-migrations
我将迁移推送到生产数据库时遇到问题.
问题:
我已将其迁移到生产数据库:
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".
输出再次是:
3 files changed, 168 insertions(+), 156 deletions(-)
Run Code Online (Sandbox Code Playgroud)
创建模式100644 db/migrate/20130325103953_add_length_column_to_books.rb创建模式100644 db/migrate/20130401041910_add_duration_column_to_books.rb
然后我跑了heroku run rake db:migrate.不幸的是没有迁移的迹象,只是得到:
运行rake db:migrate连接到终端...... up,run.5428就是这样.
在生产Rails控制台中,运行Book.column_names仍然缺少长度和持续时间.
现在我更多的是出于想法.`
Joh*_*non 35
它看起来不像你正在推动改变Heroku.步骤应如下;
git add .git commit -m "Adding features"git push heroku master- 假设您使用的heroku是远程名称,并且您正在master分支机构中工作heroku run rake db:migrate以运行HEROKU上的迁移heroku restart这应该是让你工作所需的一切.