heroku - Heroku运行rake db:migrate结果数据库没有变化,应用重新启动了几次

标签 heroku migration rake database-migration rails-migrations

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

问题:


我通过添加1列来更改数据库架构。
我已经将其迁移到生产数据库:

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.0017秒
== AddLengthColumnToBooks:迁移(0.0019s)================================
考虑到新的数据库模式正在生产中,我已经部署了用:length做一些事情的代码。
在生产中,出现以下错误:

#的未定义方法`length ='
我做了heroku rollback并将该应用程序降级为最新的可靠版本。
然后(可能有点为时已晚),我发现必须heroku restart应用程序才能加载新索引。我做了几次。
然后打开控制台并检查Book.column_names,但是没有length
我做了heroku run rake db:migrate,接着又做了heroku restart,没有变化。
我曾尝试将另一列迁移到生产数据库,但根本没有收到任何消息,甚至没有来自p.2的消息。


我在这里做错了什么?

更新资料

根据Philipe的答案,我执行了一些其他步骤:


git add db/schema.rbgit 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
修改:db / schema.rb
然后我做了git commit -m "Updating the schema"
再次输出是:

 3 files changed, 168 insertions(+), 156 deletions(-)


创建模式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 Console中,运行Book.column_names仍然缺少长度和持续时间。


现在我什至没有想法。
`

最佳答案

您似乎没有将更改推送到Heroku。步骤应如下;


更改本地代码
本地运行任何迁移
将所有更改的文件添加到Git git add .
将所有添加的文件提交到git git commit -m "Adding features"
将更改推送到Heroku git push heroku master-假设您使用heroku作为您的远程名称,并且您正在master分支中工作
如果您有迁移,请运行heroku run rake db:migrate在HEROKU上运行迁移
后续迁移执行heroku restart


那应该是您工作所需的全部。

关于heroku - Heroku运行rake db:migrate结果数据库没有变化,应用重新启动了几次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15737800/

相关文章:

heroku - 玩!在 Heroku 上使用 Drools 的框架 [1.2.4]

python - Heroku 上的基本 Django 静态文件部署

php - 迁移php4/mysql4到php5/mysql5 : expected php issues?

php - 使用 Artisan 的 Laravel 迁移设置失败

docker-compose - 如何从主机连接到数据库 - 在docker compose下运行的容器中的sql server

ruby-on-rails - Rails 和 Heroku PGError : column does not exist

javascript - 使用 node 和 multer 将图像上传到 heroku 不起作用

Ruby-on-Rails 从 Rake 任务创建记录

ruby-on-rails - rake 中止 : Wrong number of arguments (0 for 1)

ruby-on-rails - Rake 构建在错误的上下文中运行