2

我想通过 Rake 任务任意删除 Rails 应用程序中的所有表。

这是出于测试/暂存目的,在这里回滚迁移似乎不合适/不必要。

我得:

ActiveRecord::Base.connection.tables.each do |t|
  puts "=== Deleting: #{t.to_s}"
  drop_table t
end

但在这种情况下当然drop_table是未定义的。我该怎么称呼它?

4

2 回答 2

4

好的,我在这里找到了答案:http: //problemateek.blogspot.co.uk/2012/07/drop-table-from-rails-console.html

该调用只需要ActiveRecord::Migration像这样限定范围:

ActiveRecord::Migration.drop_table t
于 2013-05-15T16:39:48.717 回答
0

我知道这是多年以后的事了,但我相信这是db:drop/db:create并且schema:load是为了——甚至可能db:reset——完全重置您的数据库,而无需一直向后迁移然后再次向前迁移。

于 2021-08-20T18:28:25.913 回答