Rails 5 - PostgreSQL 删除列和索引已被破坏的迁移

Cha*_*lie 4 ruby postgresql rubygems ruby-on-rails ruby-on-rails-4

我已经销毁了一个脚手架“Location”及其表,但我忘记在销毁“Location”表之前回滚/删除迁移的列“slug 及其索引”。如何删除 slug 和 index.html 的迁移。

迁移的段塞列

class AddSlugToLocations < ActiveRecord::Migration[5.1]
  def change
    add_column :locations, :slug, :string
    add_index :locations, :slug
  end
end
Run Code Online (Sandbox Code Playgroud)

您的帮助将不胜感激,由于此问题,heroku 将不会部署

我试过了,ActiveRecord::SchemaMigration.where(version=20180412191332).delete_all但没有运气

也尝试过rake db:migrate:down VERSION=20180412191332但给出错误:在提供选项的位置上找不到索引。

spi*_*ann 5

您从应用程序的数据库中手动删除了一个表。现在运行迁移会引发错误,因为其中一个迁移试图更改不再存在的表。

只需从您的代码库中删除失败的迁移并重新部署您的应用程序。

从您的问题来看,我认为该数字的迁移20180412191332会导致该问题。在 中找到该迁移文件db/migrate/20180412191332_...rb,将其删除并重新部署到 Heroku。