首页 > 解决方案 > 删除的迁移文件和 Heroku

问题描述

我曾经问过这个问题,但我没有得到有效的答复,我可能有更好的方法来问这个问题。

长话短说,我已经删除了一些有问题的迁移文件,(问题来自无序的迁移文件;在 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 控制台并手动删除它们,但是 adelete from schema_migrations where version = 20180515064500带回了DELETE 0响应,这意味着它没有删除任何内容。

我被难住了,我花了大约一个半星期的时间来解决这个问题。

谢谢大家!!任何帮助表示赞赏。

标签: ruby-on-railsrubydatabasesqliteheroku

解决方案


查看您的 db 文件中是否显示了您的 rails 版本(例如 5.2): 在您处于关闭模式的文件中。

class CurrencyCreateUsers <ActiveRecord :: Migration [5.2]

然后 rake db: 迁移


推荐阅读