[RUBY] [Rails] Que faire lorsque les rails db: migrate ne peuvent pas être effectués car aucune table n'est référencée par la clé externe

Emplacement de l'erreur

rails aborted!
StandardError: An error has occurred, all later migrations canceled:

Mysql2::Error: Table 'first_app_development.users' doesn't exist

Il n'y a pas de table utilisateur à référencer! Est en colère. Pourquoi cela arrive-t-il?

Conclusion

Le fichier de la table des utilisateurs auquel la table des messages veut faire référence a été généré après la table des messages.

**Que voulez-vous dire? ** **

rails g model:message

Après le

rails g model:user

Avez-vous causé l'erreur? Normalement, cet ordre doit être inversé. Étant donné que user: message a une relation un-à-plusieurs, le message doit faire référence à l'utilisateur.

_create_messages.rb


class CreateMessages < ActiveRecord::Migration[6.0]
  def change
    create_table :messages do |t|
      t.string :image
      t.references :user, foreign_key: true
      t.timestamps
    end
  end
end

De cette façon, si vous ajoutez une clé étrangère: true à la colonne et que vous écrivez "Je ferai référence à la table utilisateur!", Cela signifie qu'une erreur se produira à moins que la table utilisateur référencée ne soit migrée en premier.

** Alors comment changer l'ordre des fichiers? ** ** La réponse est simple. Du fichier de migration e1347bffe8989928198807e72930578c.png Tout ce que vous avez à faire est de changer l'ordre des dates en cliquant avec le bouton droit de la souris et en modifiant le nom du fichier.

Remplacé et encore

rails db:migrate
== 20200814114004 CreateUsers: migrating ======================================
-- create_table(:users)
   -> 0.1215s
== 20200814114004 CreateUsers: migrated (0.1216s) =============================

== 20200815114016 CreateMessages: migrating ===================================
-- create_table(:messages)
   -> 0.0479s
== 20200815114016 CreateMessages: migrated (0.0480s) =========================

C'est fait ^^

Recommended Posts

[Rails] Que faire lorsque les rails db: migrate ne peuvent pas être effectués car aucune table n'est référencée par la clé externe
[Rails] Que faire lorsque l'erreur Aucune base de données sélectionnée et Base de données inconnue apparaît dans db: migrate
[React.useRef] Que faire lorsque le dernier état ne peut pas être référencé dans l'écouteur d'événements
[Rails] Que faire lorsque vous souhaitez générer une erreur qui ne peut pas être annulée lorsque des restrictions de clé externe sont appliquées
Que faire quand rbenv dit qu'il n'y a pas d'historique readline ou lib
% rails db: Lorsque vous créez, le LoadError causé par mimemagic est
Que faire si la commande adb ne peut pas être exécutée
[Rails] Que faire lorsque la vue se réduit lorsqu'un message est affiché avec la méthode des erreurs
Que faire à propos de l'erreur "Impossible de lire ou n'est pas un fichier ZIP valide"
Que faire si l'application n'est pas créée avec la dernière version de Rails installée lorsque les rails sont neufs
[Rails] Que faire si les données ne sont pas enregistrées dans la base de données
Que faire lorsque Cloud 9 est plein dans le didacticiel Rails
L'histoire que j'ai eu du mal parce que je ne pouvais pas faire "Rails db: migrate".
Tutoriel Rails Lorsque les rails neufs ne peuvent pas être réalisés en raison de versions différentes
[Rails / Docker] Que faire si l'accès est refusé par le navigateur (localhost: 3000) après l'ajout d'un gem
[IOS] Que faire lorsque l'image est remplie d'une seule couleur
Que faire lorsque CentOS ne peut pas être démarré avec VirtualBox sur Catalina
Que faire lorsque l'erreur «La variable non statique x ne peut pas être référencée à partir d'un contexte statique» en Java. Enseignements tirés de la toute première étape de programmation Remarque 01
Que faire si la construction échoue avec l'erreur «Le module compilé avec Swift x.x.x ne peut pas être importé par le compilateur Swift x.x.x»
[Rails] Que faire lorsque l'image Refile n'est pas affichée lors de l'écriture du traitement au moment de l'erreur de routage
Que faire si le message "Un serveur est déjà en cours d'exécution" s'affiche. Erreur lors de la tentative de démarrage du serveur rails
[Rails] Je veux tout réinitialiser car les données de l'environnement local sont incorrectes! Que faire avant ça
Que faire si le chargement de l'URL SPA ne peut pas être détecté par WebView shouldOverrideUrlLoading
Que faire quand est invalide car il ne commence pas par un "-"
[Ubuntu] Que faire lorsque MongoDB ne peut pas être démarré en raison d'une erreur SocketException
[Rails] La lumière de texte de Bootstrap ne peut pas être héritée par la méthode link_to car la classe n'est pas écrite comme argument dans la méthode.
Solution lorsque la connexion à la base de données n'est pas possible avec un nouveau conteneur car le port est affecté au conteneur docker existant
Après tout, que fait [rails db: migrate]?
Après avoir installé le gemfile'devise''bootstrap 'avec des rails, que faire lorsque l'url est une erreur
Que faire lorsque «Échec du chargement de la bibliothèque partagée JNI» s'affiche dans Eclipse
Que faire lorsque l'adresse déjà utilisée est affichée après l'exécution des rails
Que faire lorsqu'une erreur se produit dans les rails db: migrate ((StandardError: Une erreur s'est produite, cette migration et toutes les migrations ultérieures annulées :))
Que faire si vous obtenez une erreur (StandardError: Une erreur s'est produite, cette migration et toutes les migrations ultérieures ont été annulées :) dans rails db: migrate
Que faire si le serveur Rails ne peut pas démarrer
Que faire lorsque le certificat SSL a expiré
Que faire si le serveur rails ne peut pas être arrêté
ParseException: que faire lorsqu'une date impossible à analyser est atteinte
[Joke] Que faire lorsque la fréquence d'échantillonnage non valide est atteinte lors de l'utilisation de Mixxx sur Ubuntu 20.04
Que faire si le référentiel Git ne peut pas être affiché dans Azure Team Explorer pour Eclipse