J'apprends le tutoriel sur les rails. Erreurs rencontrées plusieurs fois pendant l'entraînement et l'exécution des tests
RuntimeError: RuntimeError: database is locked
ActiveRecord::StatementInvalid: ActiveRecord::StatementInvalid: SQLite3::BusyException: database is locked
Maintenant que ceux-ci peuvent être évités, je vais les écrire.
D'ailleurs, en passant, jusqu'au chapitre 9, même si cette erreur se produit, elle sera répétée plusieurs fois.
rails test
Ensuite, j'ai pu le passer environ la 5ème fois. (C'était très gênant) Cependant, peu importe le nombre de fois que je l'ai exécuté au chapitre 9, je ne pouvais pas le passer.
① À la console des rails
ActiveRecord::Base.connection.execute("BEGIN TRANSACTION; END;")
Courir
Résultat aucun effet
② Dans le fichier database.yml, modifiez la valeur du délai d'expiration de 5000 à 15000
Résultat aucun effet
③ Renommez le fichier db / test.sqlite3
#sample_app/Dans le répertoire db
mv test.sqlite3 new.test.sqlite3
Copiez avec le même nom de fichier que l'original.
cp -p new.test.sqlite3 test.sqlite3
Effacer le fichier new.test.sqlite3
Résultat aucun effet
④ Accédez à DB Browser pour SQLite et exécutez le raccourci suivant Ctrl + S (Je pense que vous pouvez également cliquer sur [Ecrire les modifications] à partir de [Fichier] en haut à gauche. Au fait, je ne pouvais pas cliquer car il n'y avait pas de changements. J'ai essayé Ctrl + S avec une commande même si je savais que cela n'avait aucun sens. T) Au cas où Ctrl + Shift + S
Après avoir exécuté les deux raccourcis, quittez DB Browser pour SQLite, quittez tous les terminaux, etc., et redémarrez.
Résultat aucun effet
⑤ Dans le fichier test / test_help.rb
#Probablement sur les 8e et 9e lignes
parallelize(workers: :number_of_processors, with: :threads)
Pour commenter
# parallelize(workers: :number_of_processors, with: :threads)
En conséquence, aucune erreur n'a été affichée et le test a réussi !!
①②④ https://stackoverflow.com/questions/58854780/what-does-the-database-is-locked-error-message-mean-in-ruby-on-rails-testing ③ http://fanblogs.jp/scripts/archive/61/0 ⑤ https://stackoverflow.com/questions/58854780/what-does-the-database-is-locked-error-message-mean-in-ruby-on-rails-testing (dernière réponse)
J'espère que cela sera utile pour ceux qui souffrent de la même erreur.