Che cosa significa rake db: test: preparare effettivamente fare?

Sto seguendo i video tutorial dei binari e non riesco a capire cosa faccia effettivamente il comando db:test:prepare . Qualcuno può fornire una spiegazione?

Il rake db: migrate sopra esegue tutte le migrazioni in sospeso nell’ambiente di sviluppo e aggiorna db / schema.rb. Il rake db: test: load ricrea il database di test dal db / schema.rb corrente. Nei tentativi successivi, è consigliabile eseguire prima db: test: preparare, in quanto prima controlla le migrazioni in sospeso e avvisa in modo appropriato.

http://guides.rubyonrails.org/testing.html

Fondamentalmente gestisce la clonazione del database in modo da non dover eseguire le migrazioni contro test per aggiornare il database di test.

In particolare, rake db:test:prepare farà quanto segue:

  • Verifica la presenza di migrazioni in sospeso e,
  • caricare lo schema di test

Cioè, cercherà il tuo file db/schema.rb per determinare se esistono migrazioni nel tuo progetto che non sono state eseguite. Supponendo che non ci siano migrazioni in sospeso, svuoterà il database e lo ricaricherà in base al contenuto del file db/schema.rb .

rake db: test: preparare è una buona soluzione per problemi di PG come questo .

“PG :: UndefinedTable: ERRORE: la relazione non esiste” con una corretta denominazione e convenzione Rails “dove non potevo semplicemente eseguire rake db:migrate RAILS_ENV=production

Quando, ad esempio, non è ansible creare un database di test per un bug discusso qui : “Gli utenti della relazione errori PG non definita non esistono”

Tutto intorno a questo errore “PG :: UndefinedTable: ERRORE: la relazione xxxxx non esiste”