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