我想完成一个削减所有表的任务。我已经在互联网上找到了一个,但是应该只在Rails 2上使用,而对于 Rails 3 则不起作用(问题在于获取数据库连接)。
rake db:reset不是一个选择,因为我使用的是PostgreSQL,它也会删除用户。因此,迁移失败。我只想清除数据。
rake db:reset
你们有东西给我吗?
我已经通过google找到了,然后得到了一个比批准的解决方案简单得多的解决方案,所以这里是:使用database_cleaner gem。这是步骤。
在您的Gemfile中(修改后执行包):
gem 'database_cleaner' # you might want to limit this to the dev and staging group
有了该gem之后,该语句DatabaseCleaner.clean_with :truncation将截断数据库。将其添加到rake任务很简单:
DatabaseCleaner.clean_with :truncation
# tasks/db/clean.rake namespace :db do desc "Truncate all existing data" task :truncate => "db:load_config" do DatabaseCleaner.clean_with :truncation end end
而已。您也可以直接DatabaseCleaner.clean_with :truncation在db/seeds.rb文件中使用该行,以免忘记在播种之前截断数据库。
db/seeds.rb