sql >> Databasteknik >  >> RDS >> PostgreSQL

Rake-uppgift för att trunkera alla tabeller i Rails 3

Jag har hittat detta via google, och då fick jag en mycket enklare lösning än den godkända, så här är den:Använd database_cleaner pärla. Här är stegen.

I din Gemfil (kör paketet efter modifiering):

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

Med den pärlan på plats, uttalandet DatabaseCleaner.clean_with :truncation kommer att trunkera databasen. Att lägga till det i en rake-uppgift är trivialt:

# tasks/db/clean.rake

namespace :db do

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

end

Det är allt. Du kan också använda DatabaseCleaner.clean_with :truncation rad i din db/seeds.rb fil direkt så att du inte glömmer att trunkera databasen innan du sådd.



  1. MySQL ERROR 1005 (HY000):Kan inte skapa tabellen 'foo.#sql-12c_4' (fel:150)

  2. Långsam import av stor MySQL-dump

  3. Använder du .aggregate() på ett värde som introducerats med .extra(select={...}) i en Django-fråga?

  4. Returnera rader som innehåller alfanumeriska tecken i SQLite