[Rails] Fehler während der Installation des Geräts

Bei der Installation von devise ist der folgende Fehler aufgetreten. Führen Sie nach der Bundle-Installation von gem Rails g devise: install aus. Nach dem Ausführen von Rails G Devise User ist dies der Fehler, der beim Ausführen von Rake DB: Migrate aufgetreten ist.

Error

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)
=================================

Lösungen Ich war ein Anfänger und wusste nicht, was los war Ich habe überprüft, welche der aktuellen Tabellen funktioniert.

rails db:migrate status

Ergebnis

〇〇-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

Vor der Bundle-Installation entwickeln Sie hier Ich habe festgestellt, dass die Benutzertabelle, die ich als Test erstellt habe, erstellt wurde.

Möglicherweise benötigen Sie es nicht, aber sobald Sie die folgenden Schritte ausgeführt haben, um die Tabelle wiederherzustellen

rails db:rollback

Alle sind unten. Löschen Sie dann unnötige 20201014013111 Benutzer erstellen

rm -rf db/migrate/20201014013111_create_users.rb

Nach dem Ablegen des Tisches

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

Und

〇〇-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:

Ich habe einen weiteren Fehler erhalten. Die Ursache ist, dass bei der Installation von devise das, was durch create erstellt werden kann, geändert wird und ein Fehler auftritt. Ich habe es unten geändert.

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

Dann entfernt, um Gerät zu deinstallieren

〇〇-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

Und schließlich habe ich devise wieder installiert und es funktioniert gut.

〇〇-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

Da ich ein Anfänger bin, habe ich ein paar Stunden gebraucht. Ich hoffe es hilft jemandem.

Referenz Qiita: [Rails] Migrationsdatei löschen https://qiita.com/ISSO33/items/33a935cb3255c269bef2

Qitta: Rails-Produktionsumgebung ActiveRecord :: StatementInvalid (Mysql2 :: Fehler: Table'table name 'existiert nicht): https://qiita.com/ashketcham/items/a0d0a2ac788779895fb4

Qiita:Mysql2::Error::ConnectionError: Access denied for user Lösung für 'root' @ 'localhost' (mit Passwort: YES) https://qiita.com/naota7118/items/b62d71484e21d6739d68

Qiita: Gerät deinstallieren https://qiita.com/NT90957869/items/8c5285775a67a51f03e1

teratall: [Rails] -Fehler während der Installation des Geräts https://teratail.com/questions/214948

Recommended Posts

[Rails] Fehler während der Installation des Geräts
[Rails] Flow bei der Installation von Gem Devise
[Schienen] erfinden
[Rails] Unerwarteter Validierungsfehler im Gerät
[Rails] Einführung in das Gerät
Der Weg zur Japanisierung von Rails führt zu Fehlermeldungen
[Hinweis] Rails-Fehlerliste
Catch Rails Routing-Fehler
[Rails] entwickelt eine Hilfsmethode
[Rails] Passen Sie die Validierung des Geräts an
Gerät mit Schienen handhaben
[Rails] entwickeln eine Einführungsmethode
Schienen, RSpec-Installationsverfahren
[Schienen] Standardwerte festlegen
Japanische Lokalisierung von Rails-Fehlermeldungen [Objekte entwerfen / bilden usw.]
[Rails] Einführung in die Grundlagen der Entwicklung
Was ist Rails Gem Devise?
Schienenfehler Bibliothek nicht geladen
[Rails] Problemumgehung für Klassen, die automatisch mit Fehlermeldungen generiert werden
ActiveRecord :: NotNullViolation im Gerätefehler
(Für Anfänger) [Rails] Installieren Sie das Gerät
[Rails] Was war die Fehlermeldung?
[Rails] Wie man Edelstein "devise" benutzt
[Rails] Japanische Lokalisierung von Fehlermeldungen
[Schienen] Verwendung von Geräten (Hinweis)
[Rails] Einstellung des Sitzungszeitlimits im Gerät
[Divise] Rails Memo Grundeinstellungen Grundeinstellungen
[Schienen] Zeigen Sie Formularfehlermeldungen asynchron an
[Rails] [Devise] Profil bearbeiten, ohne Passwort einzugeben
Ruby On Rails entwickelt Routing-Konflikte
[Rails] -Syntaxfehler, unerwartetes tSTRING_END, erwartet ''
[Rails] Zusammenfassung der AWS-Bereitstellungsfehler
Rails Tutorial-Datensatz und Memorandum Nr. 1 "Von der Installation bis zur Bereitstellung von hello_app + Fehlerbehandlung"