【发布时间】:2018-11-12 05:22:40
【问题描述】:
我曾经问过这个问题,但没有得到有效的答复,我可能有更好的方法来问这个问题。
长话短说,我删除了一些有问题的迁移文件,(问题来自无序的迁移文件;在 create_stocks 文件之前有一个 add_column_to_stocks),但无论出于何种原因,heroku 仍然想要迁移这些旧的、已删除的文件。我不知道这些文件存储在哪里。
如果我执行 heroku db:migrate:status,这是响应:
Status Migration ID Migration Name
--------------------------------------------------
up 20171231042756 Create articles
up 20171231044214 Add description to articles
up 20180116183526 Create users
up 20180116191414 Add user to articles
up 20180116195212 Add password digest to users
up 20180305082108 Create categories
up 20180305090315 Create article categories
down 20180515064500 Add latest price to stocks
down 20180517202216 Add timetables to stock
down 20180517205823 Add updatedtime to stocks
down 20180521021514 Create user stocks
问题从第一个下载文件开始。
我的本地迁移文件夹看起来更像这样:
20171231042756 Create articles
20171231044214 Add description to articles
20180116183526 Create users
20180116191414 Add user to articles
20180116195212 Add password digest to users
20180305082108 Create categories
20180305090315 Create article categories
20180515064499 Create stocks.rb
20180521021514 Create user stocks.rb
无论我对本地迁移文件进行什么更改,它都会继续迁移这些有问题的文件,所以我总是会得到响应:
PG::UndefinedTable: ERROR: relation "stocks" does not exist
: ALTER TABLE "stocks" ADD "latest_price" decimal
我尝试进入 heroku psql 控制台并手动删除它们,但 delete from schema_migrations where version = 20180515064500 带回了 DELETE 0 响应,这意味着它没有删除任何内容。
我被难住了,我花了大约一个半星期的时间来解决这个问题。
提前谢谢大家!!任何帮助表示赞赏。
【问题讨论】:
-
您尝试过删除并重新创建数据库吗?
rails db:drop然后 rails db:create & migrate -
git rm db/migrate/20180515064500*.rb并部署在 heroku 上。 -
你也可以用
ls -t db/migrate的结果更新问题 -
Sikandar Tariq,rails db:drop、create 和 migrate 会删除我应用程序上的所有数据吗?
-
经过反复试验,您的回答@kiddorails 解决了我的问题。这是一个简单的 git rm 并将更改迁移到 heroku。感谢您的帮助!
标签: ruby-on-rails ruby database sqlite heroku