Heroku运行rake db:迁移不工作

时间:2015-01-27 01:38:52

标签: ruby-on-rails ruby postgresql heroku

帮助!!

我正在尝试将我的生产代码推送到heroku但由于某些原因,heroku运行rake db:migrate命令不起作用。它给了我这个错误:

Migrating to RemoveMealPlanFromOrders (20150125085531)
== 20150125085531 RemoveMealPlanFromOrders: migrating =========================
-- remove_reference(:orders, :mealplan, {:index=>true})
PG::Error: ERROR:  column "mealplan_id" of relation "orders" does not exist
: ALTER TABLE "orders" DROP "mealplan_id"
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

PG::Error: ERROR:  column "mealplan_id" of relation "orders" does not exist
: ALTER TABLE "orders" DROP "mealplan_id"/app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.8/lib/active_record/connection_adapters/postgresql/database_statements.rb:128:in `exec'
...

我拼命尝试了一切,包括手动删除错误引用的迁移文件,运行rake db:reset,重置heroku的数据库,甚至重新启动heroku应用程序,但无济于事。如果有人能提供这个错误的解决方案,我会无限欣赏。我需要在截止日期前提交此生产代码。

提前致谢!!!

2 个答案:

答案 0 :(得分:1)

我弄明白了这个问题。显然我已经删除了本地计算机上的冲突迁移,但忘记运行命令git push heroku。一旦我这样做,我就能heroku run rake db:migrate没有问题。

快乐的编码!

答案 1 :(得分:1)

Heroku Postgres是由Heroku运行的SQL数据库服务,已经过配置和管理。在将代码库从git推送到Heroku之前,您需要通过以下命令迁移数据库。

  

heroku run rake db:migrate --app your_app_name。

db-migaration之后

  

git push heroku master

如果您对数据库进行了任何更改,请确保在推入heroku之前迁移数据库。