PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Tâche Rake pour tronquer toutes les tables dans Rails 3

J'ai trouvé cela via google, puis j'ai eu une solution beaucoup plus simple que celle approuvée, alors la voici :utilisez le database_cleaner gemme. Voici les étapes.

Dans votre Gemfile (exécutez le bundle après modification) :

gem 'database_cleaner' # you might want to limit this to the dev and staging group

Avec cette gemme en place, la déclaration DatabaseCleaner.clean_with :truncation tronquera la base de données. L'ajouter à une tâche de rake est trivial :

# tasks/db/clean.rake

namespace :db do

  desc "Truncate all existing data"
  task :truncate => "db:load_config" do
    DatabaseCleaner.clean_with :truncation
  end

end

C'est ça. Vous pouvez également utiliser le DatabaseCleaner.clean_with :truncation ligne à l'intérieur de votre db/seeds.rb fichier directement afin de ne pas oublier de tronquer la base de données avant l'ensemencement.