我已经销毁了脚手架“Location”及其表,但我忘记在销毁“Location”表之前回滚/删除迁移的列“slug 及其索引”。如何删除 slug 和 index.js 的迁移?
迁移的 slug 列
class AddSlugToLocations < ActiveRecord::Migration[5.1]
def change
add_column :locations, :slug, :string
add_index :locations, :slug
end
end
非常感谢您的帮助,由于这个问题,heroku 将无法部署
我已经尝试过 ActiveRecord::SchemaMigration.where(version=20180412191332).delete_all
但没有成功
还尝试了 rake db:migrate:down VERSION=20180412191332
但给出错误:在提供的选项的位置上找不到索引。
最佳答案
您从应用程序的数据库中手动删除了一个表。现在运行迁移会引发错误,因为其中一个迁移正在尝试更改不再存在的表。
只需从您的代码库中删除失败的迁移并重新部署您的应用程序。
根据您的问题,我假设编号为 20180412191332
的迁移导致了问题。在 db/migrate/20180412191332_...rb
中找到该迁移文件,将其删除并重新部署到 Heroku。
关于ruby-on-rails - Rails 5 - PostgreSQL 删除列和索引已被破坏的迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49813675/