Qu’est-ce que rake db: test: prepare réellement faire?

Je suis les vidéos du tutoriel sur les rails et je n’arrive pas à comprendre ce que fait la commande db:test:prepare . Quelqu’un peut-il fournir une explication?

La firebase database rake: migrate above exécute toutes les migrations en attente dans l’environnement de développement et met à jour db / schema.rb. La firebase database rake: test: load recrée la firebase database de test à partir de la firebase database / schema.rb actuelle. Lors des tentatives suivantes, il est conseillé d’exécuter db: test: prepare, car il vérifie d’abord les migrations en attente et vous avertit de manière appropriée.

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

Fondamentalement, il gère le clonage de la firebase database afin de ne pas avoir à exécuter les migrations par rapport aux tests pour mettre à jour la firebase database de test.

Plus précisément, rake db:test:prepare effectue les opérations suivantes:

  • Vérifier les migrations en attente et,
  • charger le schéma de test

En d’autres db/schema.rb fichier db/schema.rb sera recherché pour déterminer s’il existe des migrations dans votre projet qui n’ont pas été exécutées. En supposant qu’il n’y ait pas de migrations en suspens, il videra la firebase database et la rechargera en fonction du contenu du fichier db/schema.rb .

rake db: test: prepare est une bonne solution pour ce genre de problèmes.

“PG :: UndefinedTable: ERROR: la relation n’existe pas” avec un nom et une convention Rails corrects “où je ne peux pas simplement exécuter rake db:migrate RAILS_ENV=production

Lorsque, par exemple, vous ne pouvez pas créer de firebase database de test pour un bogue dont il est question ici : “La relation entre la PG et les utilisateurs de la table des relations non définie n’existe pas”

Tout autour de cette erreur “PG :: UndefinedTable: ERROR: la relation xxxxx n’existe pas”