ruby-on-rails - 删除的迁移文件和 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
响应,这意味着它没有删除任何内容。
我被难住了,我花了大约一个半星期的时间来解决这个问题。
谢谢大家!!任何帮助表示赞赏。
解决方案
查看您的 db 文件中是否显示了您的 rails 版本(例如 5.2): 在您处于关闭模式的文件中。
class CurrencyCreateUsers <ActiveRecord :: Migration [5.2]
然后 rake db: 迁移
推荐阅读
- java - 如何使用可分页和对象创建缓存键?
- swift - Swift:在 Mac 上检索文件图标时出现问题
- flutter - 如何检查用户名是否已存在于数据库中并验证没有空格的用户名
- javascript - 如何让用户的 gmail 使用我的应用程序脚本?
- scala - 如何读取带有分隔符 /u0001 的 .dat 文件并记录下一条记录将通过 scala 中的下一行分隔
- angular - 日期的角度自定义管道错误作为字符串
- c# - 类型引用找不到名为的公共类型
- java - 配置 Spring Security 以接受来自 POST 正文而不是请求参数的登录详细信息
- c - GNU Make 规则 hello.c 和 %.c 做了一些奇怪的事情
- python - 如何比较rowindex和columnname访问的行的columnvalue?