我可以使用Post.delete_all
删除所有帖子,但如果我想删除所有帖子、评论、博客等,该怎么办?
如何遍历所有模型并运行delete_all
方法?
发布于 2009-07-28 19:21:26
rake db:reset
它通过迁移重新创建您的表。
正如评论中所建议的,一种更快的方法(但你必须添加一个新的rake任务)是:
namespace :db do
desc "Truncate all tables"
task :truncate => :environment do
conn = ActiveRecord::Base.connection
tables = conn.execute("show tables").map { |r| r[0] }
tables.delete "schema_migrations"
tables.each { |t| conn.execute("TRUNCATE #{t}") }
end
end
响应复制自:answer on SO。
发布于 2009-07-28 23:05:59
您可以通过以下方式进行更精细的控制:
rake db:drop:all
然后在不运行迁移的情况下创建数据库,
rake db:create:all
然后运行所有的迁移,
rake db:migrate
您还可以执行以下操作:
mysqladmin drop databasename
发布于 2010-05-07 22:59:48
如果只是想用一组全新的空表重新开始,可以首先确保在db/schema.rb中有一个最新的模式定义:
rake db:schema:dump
然后:
rake db:schema:load
它的效果是删除表,然后重新创建它们,而不需要运行整个迁移过程。
https://stackoverflow.com/questions/1196172
复制相似问题