帮助!!
我正在尝试将我的生产代码推送到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应用程序,但无济于事。如果有人能提供这个错误的解决方案,我会无限欣赏。我需要在截止日期前提交此生产代码。
提前致谢!!!
答案 0 :(得分:1)
我弄明白了这个问题。显然我已经删除了本地计算机上的冲突迁移,但忘记运行命令git push heroku
。一旦我这样做,我就能heroku run rake db:migrate
没有问题。
快乐的编码!
答案 1 :(得分:1)
Heroku Postgres是由Heroku运行的SQL数据库服务,已经过配置和管理。在将代码库从git推送到Heroku之前,您需要通过以下命令迁移数据库。
db-migaration之后heroku run rake db:migrate --app your_app_name。
。
git push heroku master
如果您对数据库进行了任何更改,请确保在推入heroku之前迁移数据库。