PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Rake task per troncare tutte le tabelle in Rails 3

L'ho trovato tramite Google e poi ho ottenuto una soluzione molto più semplice di quella approvata, quindi eccola qui:Usa database_cleaner gemma. Ecco i passaggi.

Nel tuo Gemfile (esegui il bundle dopo la modifica):

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

Con quella gemma in atto, l'istruzione DatabaseCleaner.clean_with :truncation troncherà il database. Aggiungerlo a un'attività di rake è banale:

# tasks/db/clean.rake

namespace :db do

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

end

Questo è tutto. Puoi anche usare DatabaseCleaner.clean_with :truncation riga all'interno del tuo db/seeds.rb file direttamente in modo da non dimenticare di troncare il database prima del seeding.