[rails] erreur lors de l'installation du périphérique

J'ai eu l'erreur suivante lors de l'installation de l'appareil. Après l'installation du bundle gem, exécutez rails g devise: install. Ensuite, après avoir exécuté rails g devise user, c'est l'erreur qui s'est produite lors de l'exécution de rake db: migrate.

Erreur

Mysql2::Error: Table 'development.users' doesn't exist
/Users/projects/db/migrate/20201016082907_add_devise_to_users.rb:7:in `block in up'
/Users/projects/db/migrate/20201016082907_add_devise_to_users.rb:5:in `up'
/Users/projects/bin/rails:9:in `<top (required)>'
/Users/projects/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'
Caused by:
ActiveRecord::StatementInvalid: Mysql2::Error: Table 'development.users' doesn't exist
/Users/projects/db/migrate/20201016082907_add_devise_to_users.rb:7:in `block in up'
/Users/projects/db/migrate/20201016082907_add_devise_to_users.rb:5:in `up'
/Users/projects/bin/rails:9:in `<top (required)>'
/Users/projects/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'
Caused by:
Mysql2::Error: Table 'development.users' doesn't exist
/Users/projects/db/migrate/20201016082907_add_devise_to_users.rb:7:in `block in up'
/Users/projects/db/migrate/20201016082907_add_devise_to_users.rb:5:in `up'
/Users/projects/bin/rails:9:in `<top (required)>'
/Users/projects/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
=================================

Solutions J'étais un débutant et je ne savais pas ce qui se passait, alors J'ai vérifié laquelle des tables actuelles fonctionne.

rails db:migrate status

résultat

〇〇-no-MacBook% rake db:migrate:status
database: development
 Status   Migration ID    Migration Name
--------------------------------------------------
   up     20201013135213  Create items
   up    20201014013111  Create users
  down    20201016082907  Add devise to users

Avant le bundle, installez le modèle ici J'ai remarqué que la table des utilisateurs que je faisais à titre d'essai a été créée.

Vous n'en avez peut-être pas besoin, mais une fois que vous avez fait ce qui suit pour restaurer la table

rails db:rollback

Tous sont en panne. Ensuite, supprimez les utilisateurs inutiles 20201014013111 Créer des utilisateurs

rm -rf db/migrate/20201014013111_create_users.rb

Après avoir déposé la table

〇〇-no-MacBook% rake db:migrate:status                          
database: NF_development
 Status   Migration ID    Migration Name
--------------------------------------------------
  down    20201013135213  Create items
  down    20201016082907  Add devise to users

Et

〇〇-no-MacBook% rails db:migrate                                   
== 20201013135213 CreateItems: migrating ======================================
-- create_table(:items)
   -> 0.0173s
== 20201013135213 CreateItems: migrated (0.0174s) =============================

== 20201016082907 AddDeviseToUsers: migrating =================================
-- change_table(:users)
rails aborted!
StandardError: An error has occurred, all later migrations canceled:

J'ai une autre erreur. La cause est que lorsque l'appareil est installé, ce qui peut être créé par create est modifié et une erreur se produit. Je l'ai modifié ci-dessous.

class CreateItems < ActiveRecord::Migration[6.0]
  def change→create
    change→create_table :items do |t|
      t.string :name
      t.string :text
      t.text :image
      t.integer :category_id
      t.integer :item_id
      t.timestamps
    end
  end
end

Puis supprimé pour désinstaller l'appareil

〇〇-no-MacBook% rails d devise user             
Running via Spring preloader in process 73770
Deprecation warning: Expected boolean default value for '--orm'; got :active_record (string).
This will be rejected in the future unless you explicitly pass the options `check_default_type: false` or call `allow_incompatible_default_type!` in your code
You can silence deprecations warning by setting the environment variable THOR_SILENCE_DEPRECATION.
      invoke  active_record
      remove    db/migrate/20201016082907_add_devise_to_users.rb
      remove    app/models/user.rb
      invoke    test_unit
      remove      test/models/user_test.rb
      remove      test/fixtures/users.yml
       route  devise_for :users

Et finalement, j'ai réinstallé la conception et cela fonctionne très bien.

〇〇-no-MacBook%rails g devise user 
Running via Spring preloader in process 73899
Deprecation warning: Expected boolean default value for '--orm'; got :active_record (string).
This will be rejected in the future unless you explicitly pass the options `check_default_type: false` or call `allow_incompatible_default_type!` in your code
You can silence deprecations warning by setting the environment variable THOR_SILENCE_DEPRECATION.
      invoke  active_record
      create    db/migrate/20201016152820_devise_create_users.rb
      create    app/models/user.rb
      invoke    test_unit
      create      test/models/user_test.rb
      create      test/fixtures/users.yml
      insert    app/models/user.rb
       route  devise_for :users

Puisque je suis débutant, cela m'a pris quelques heures. J'espère que cela aide quelqu'un.

référence Qiita: [Rails] Supprimer le fichier de migration https://qiita.com/ISSO33/items/33a935cb3255c269bef2

Qitta: Environnement de production Rails ActiveRecord :: StatementInvalid (Mysql2 :: Error: Le nom de la table 'n'existe pas): https://qiita.com/ashketcham/items/a0d0a2ac788779895fb4

Qiita:Mysql2::Error::ConnectionError: Access denied for user Solution pour 'root' @ 'localhost' (en utilisant le mot de passe: OUI) https://qiita.com/naota7118/items/b62d71484e21d6739d68

Qiita: Désinstaller le dispositif https://qiita.com/NT90957869/items/8c5285775a67a51f03e1

teratall: erreur [rails] lors de l'installation du périphérique https://teratail.com/questions/214948

Recommended Posts

[rails] erreur lors de l'installation du périphérique
[Rails] Flux lors de l'installation du dispositif de gemmes
[Rails] concevoir
[Rails] Erreur de validation inattendue dans l'appareil
[Rails] Présentation du dispositif
La route vers la japonaisisation des rails conçoit des messages d'erreur
[Note] Liste des erreurs de rails
Erreur de routage Catch Rails
[Rails] conçoit une méthode d'aide
[Rails] Personnaliser la validation de l'appareil
Manipuler le dispositif avec des rails
[Rails] conçoit une méthode d'introduction
Rails, procédure d'installation RSpec
[rails] concevoir les valeurs par défaut
Localisation japonaise des messages d'erreur Rails [objets de conception / formulaire, etc.]
[Rails] Introduction aux principes de base du dispositif
Qu'est-ce que Rails Gem Concevoir?
Erreur de rails Bibliothèque non chargée
[Rails] Solution de contournement pour les classes générées automatiquement avec des messages d'erreur de conception
Erreur ActiveRecord :: NotNullViolation dans Devise
(Pour les débutants) [Rails] Installer Devise
[Rails] Quel était le message d'erreur?
[Rails] Comment utiliser la "devise" des gemmes
[Rails] Localisation japonaise des messages d'erreur
[Rails] Comment utiliser l'appareil (Remarque)
[Rails] Paramètre de délai d'expiration de session dans l'appareil
[Diviser] rails memo Paramètres de base Paramètres initiaux
[Rails] Afficher les messages d'erreur du formulaire de manière asynchrone
[Rails] [Devise] Modifier le profil sans saisir de mot de passe
Ruby On Rails conçoit un conflit de routage
[Rails] Erreur de syntaxe, tSTRING_END inattendue, attendue ""
[Rails] Récapitulatif des incidents liés aux erreurs de déploiement AWS
Enregistrement du tutoriel Rails et mémorandum n ° 1 "De l'installation au déploiement hello_app + gestion des erreurs"