drop_table迁移无法删除表

时间:2014-07-03 20:21:46

标签: ruby-on-rails migration schema.rb

我读了很多关于它但我仍然无法摆脱我在数据库中的一个表:

create_table "votes", force: true do |t|
  t.integer  "votable_id"
  t.string   "votable_type"
  t.integer  "voter_id"
  t.string   "voter_type"
  t.boolean  "vote_flag"
  t.string   "vote_scope"
  t.integer  "vote_weight"
  t.datetime "created_at"
  t.datetime "updated_at"
end

add_index "votes", ["votable_id", "votable_type", "vote_scope"],
          name: "index_votes_on_votable_id_and_votable_type_and_vote_scope"  
add_index "votes", ["voter_id", "voter_type", "vote_scope"],
          name: "index_votes_on_voter_id_and_voter_type_and_vote_scope"

我没有创建此表的迁移。但我认为此表来自先前安装的acts_as_votable gem。但我可能已手动删除此迁移...

我尝试drop_table如下,但它不起作用。即使我有这个迁移文件,投票表仍然存在:

class DropVotesTable < ActiveRecord::Migration
  def up
    drop_table :votes
  end

  def down
    raise ActiveRecord::IrreversibleMigration
  end
end

如何从 schema.rb 文件中删除此表?

编辑:解决方案

即使在运行迁移后,表仍然在我的 schema.rb 中,所以我使用了rails控制台:

rails c
ActiveRecord::Migration.drop_table(:votes)
rake db:migrate

这张桌子终于消失了。

0 个答案:

没有答案