我想通过 Rake 任务任意删除 Rails 应用程序中的所有表。
这是出于测试/暂存目的,在这里回滚迁移似乎不合适/不必要。
我得:
ActiveRecord::Base.connection.tables.each do |t|
puts "=== Deleting: #{t.to_s}"
drop_table t
end
但在这种情况下当然drop_table
是未定义的。我该怎么称呼它?
我想通过 Rake 任务任意删除 Rails 应用程序中的所有表。
这是出于测试/暂存目的,在这里回滚迁移似乎不合适/不必要。
我得:
ActiveRecord::Base.connection.tables.each do |t|
puts "=== Deleting: #{t.to_s}"
drop_table t
end
但在这种情况下当然drop_table
是未定义的。我该怎么称呼它?
好的,我在这里找到了答案:http: //problemateek.blogspot.co.uk/2012/07/drop-table-from-rails-console.html
该调用只需要ActiveRecord::Migration
像这样限定范围:
ActiveRecord::Migration.drop_table t
我知道这是多年以后的事了,但我相信这是db:drop
/db:create
并且schema:load
是为了——甚至可能db:reset
——完全重置您的数据库,而无需一直向后迁移然后再次向前迁移。