Heroku DB:迁移错误,删除索引



新的铁轨和一些Heroku麻烦。我创建了一个表格,并使用了索引。我需要更改字段名称,自然而然地索引随附。因此,我创建了三个迁移,一个迁移以删除字段,下一步以删除索引,最后一个要添加索引。我的计算机在处理这一迁移方面没有问题,但是Heroku失败了。

我尝试将迁移#1和#2合并为一个迁移,但对此没有运气。

Index name 'index_updateresults_on_env_id_and_created_at' on table 'updateresults' does not exist/app/vendor/bundle/ruby/2.1.0/gems/activerecord-4.0.0/lib/active_record/connection_adapters/abstract/schema_statements.rb:825:in `index_name_for_remove'

编辑:也可以添加我的迁移。

class CreateUpdateresults < ActiveRecord::Migration
  def change
    create_table :updateresults do |t|
      t.string :content
      t.integer :env_id
      t.timestamps
    end
    add_index :updateresults, [:env_id, :created_at]
  end
end
class RemoveEnvIdFromUpdateresults < ActiveRecord::Migration
  def change
    remove_column :updateresults, :env_id, :string
    remove_index :updateresults, [:env_id, :created_at]
  end
end
class AddEnvNameToUpdateresults < ActiveRecord::Migration
  def change
    add_column :updateresults, :env_name, :string
    add_index :updateresults, [:env_name, :created_at]
  end
end

编辑2

我很茫然。好像在爆发后,删除一个字段还可以删除该领域的任何索引。这可能不会在Sqllite中发生,因此我的本地环境为何工作,但Heroku断断续续(只是一个猜测)。我已经尝试删除删除索引的迁移,希望避免此问题,我已经犯下了更改,并将其推向了Heroku。但是我仍然遇到相同的错误,当我克隆回购时,迁移仍然存在。也许这与git有关,较少的轨道相关。

在另一个问题上找到了很多信息。我最终是正确的,因为这与git有关。完全不确定为什么我的承诺会删除文件,而不是在Heroku上进行的。我最终做了一个git rm commitname,然后将heroku推到我的存储库。终于在这一点上花了。

最新更新