ActiveRecord::StatementInvalid: Could not find table
Impossible de trouver la table DB lors de l'exécution du test
rails db:migrate:reset RAILS_ENV=test
Réinitialisez le DB de test avec
rails dbconsole -e test
sqlite> .table
Vérifiez si la table est faite avec. Créé.
Beaucoup de gens pensent que c'est la solution, mais si vous relancez le test,
ActiveRecord::StatementInvalid: Could not find table
Même erreur.
Et quand j'ai vérifié à nouveau la table, la table a disparu.
à rails_helper.rb
rails_helper.rb
#Code à commenter
ActiveRecord::Migration.maintain_test_schema!
J'ai commenté cela.
Puis je suis passé. Cependant, la table n'a pas encore été créée et tous les tests utilisant la table ont échoué.
Code pour la migration automatique de la base de données de test en consultant schema.rb avant d'exécuter rspec.
Je pensais qu'il pourrait y avoir un problème avec le schéma selon lequel le test est exécuté en supprimant ceci, alors je l'ai confirmé.
Il a été écrit comme ceci dans le fichier de schéma.
La table ne peut pas être reflétée dans le schéma.
Puis
migration_name.rb
def up
change_column :comments, :discovery_id, :reference, null: true
end
Il y avait une partie qui était censée être.
Il n'y a aucune référence dans le type, mais pour une raison quelconque, je l'ai fait.
Modification: référence à: entier et rails db: migrate: reset A été décrit dans le schéma.
Réinitialiser à nouveau la migration après avoir été bien documenté dans le schéma
rails db:migrate:reset RAILS_ENV=test
Et décommentez ActiveRecord :: Migration.maintain_test_schema!
rails_helper.rb
#Décommenter
ActiveRecord::Migration.maintain_test_schema!
Et lancez le test
bin/rspec
J'ai réussi tous les tests.
Exécution du test → Table non trouvée → Réinitialiser et migrer dans l'environnement de test → La table a été créée → Exécution du test à nouveau → Manquant et introuvable → Ne pas lire le schéma immédiatement avant l'exécution → Tester les travaux → La table non trouvée dans le schéma est décrite Pas terminé → Migrer correctement → Test de fonctionnement
C'était comme ça.