[RUBY] 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

introduction

Ce sera une note d'apprentissage.

Cette fois, nous traiterons l'erreur qui se produit après l'exécution de $ rails db: migrate ou $ rails db: migrate.

== 20200107095832 CreateMicroposts: migrating =================================
-- create_table(:microposts)
rails aborted!
StandardError: An error has occurred, this and all later migrations canceled:

SQLite3::SQLException: table "microposts" already exists: CREATE TABLE "microposts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "content" text, "user_id" integer, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)

Suite ci-dessous

Cause

Je pense qu'il y a quelque chose qui ne va pas avec la migration de la commande que j'ai faite la dernière fois. Probablement, une erreur s'est produite au milieu du processus de migration et la table a été générée, mais la migration qui a généré la table reste non exécutée. Est-ce dans un tel état? je pense

Solution

$ rails db:migrate:reset

Après la réinitialisation de la base de données

$ rails db:migrate

Migrer à nouveau

Cette commande est utilisée lorsque vous souhaitez supprimer la base de données, modifier le nouveau fichier de migration et effectuer à nouveau la migration.

$ rails db:migrate:reset

Une erreur se produit après la réinitialisation de la base de données!

ActiveRecord::NoEnvironmentInSchemaError: 

Environment data not found in the schema. To resolve this issue, run: 

        bin/rails db:environment:set RAILS_ENV=development


Tasks: TOP => db:migrate:reset => db:drop => db:check_protected_environments
(See full trace by running task with --trace)

Faire face

rake db:migrate:status

Vérifiez l'état de db avec la commande ci-dessus. ⬇︎ Contenu d'exécution

 up     20201013130002  Devise create users
 down    20201015132219  Add devise to users

Apparemment, le fichier de migration en bas est suspect. .. .. J'ai vérifié l'éditeur Je créais deux fois le même fichier de migration. .. Alors, essayez de supprimer le fichier de migration en bas.

$ rm -rf db/migrate/20201015132219_add_devise_to_users.rb

Cela va migrer à nouveau. ⬇︎ Résultat de l'exécution

== 20201013130002 DeviseCreateUsers: migrating ================================
-- create_table(:users)
   -> 0.0061s
-- add_index(:users, :email, {:unique=>true})
   -> 0.0014s
-- add_index(:users, :reset_password_token, {:unique=>true})
   -> 0.0011s
== 20201013130002 DeviseCreateUsers: migrated (0.0087s) =======================

J'ai pu le faire sans aucun problème!

finalement

Cette fois, j'ai appris les erreurs lors de la migration. La réinitialisation de la base de données n'a pas résolu le problème. La cause était un fichier de migration en double.

Je vous serais reconnaissant si vous pouviez signaler des erreurs.

Recommended Posts

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 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 :))
Erreur dans les rails docker db: migrate (StandardError: Une erreur s'est produite, toutes les migrations ultérieures ont été annulées :)
[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
[Rails] Error StandardError: Une erreur s'est produite, toutes les migrations ultérieures ont été annulées: La colonne ʻExternal key name` sur table` Table name` ne correspond pas à la colonne ʻid` sur `Table name`
[Débutant en programmation] Que faire lorsque les rails deviennent une erreur dans l'environnement de développement local
Que faire lorsque l'hôte bloqué: "nom d'hôte" apparaît dans Ruby on Rails
Que faire si l'installation de ffi échoue lors du lancement d'une application dans Rails
À propos de l'erreur survenue lors de l'ajout d'un nom de colonne dans les rails (rails db: migrate, rails db: rollback, add)
Que faire si vous obtenez une erreur avec l'authentification de base pendant le code de test Rails
Que faire si une exception UnsupportedCharsetException se produit dans un JRE léger
Résolution d'une erreur survenue lors de la tentative d'utilisation de Spark dans un environnement où Java 8 et Java 11 coexistent
Ajouter gem'rails-i18n ',' ~> 6.0.0 'et que faire si l'installation du bundle donne une erreur
Que faire si une erreur se produit lorsque nokogiri entre lors de l'installation du bundle
Que faire lorsque "call'Hoge.connection 'pour établir une connexion" apparaît sur les rails c
Solution qui donne une erreur lors de la tentative de connexion à DB (MySQL) avec Java
[Grails] Une erreur s'est produite lors de l'exécution Que faire lorsque la CLI Grails ne démarre pas
Résumé en essayant d'utiliser Solr en Java et en obtenant une erreur (Solr 6.x)
Que faire lorsque «Impossible de trouver» dans l’une des sources apparaît dans l’environnement de développement avec Docker × Rails × RSpec
Que faire si vous obtenez une erreur indiquant "Veuillez saisir une valeur valide" lors de l'obtention avec Rails datetime_field
[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 si le message d'erreur "Impossible de trouver un moteur d'exécution JavaScript" s'affiche lors du démarrage du serveur rails
Après tout, que fait [rails db: migrate]?
Que faire si IllegalStateException se produit dans PlayFramework
[Dans le développement de l'équipe] Erreur lors du déplacement vers la succursale d'un autre membre et de l'exécution des rails [Rails]
Que faire si Failure / Error: require File.expand_path ('../ config / environment', __dir__) apparaît dans RSpec
Que faire lorsque l'adresse déjà utilisée est affichée après l'exécution des rails
[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
<Installation par points> Que faire si vous ne pouvez pas continuer en raison d'une erreur lors de la création d'un environnement de développement pour l'apprentissage Rails.
J'ai ajouté un fichier Jar au chemin de construction dans un projet Eclipse, mais la situation et ce qu'il faut faire lorsque `java.util.zip.ZipException: en-tête LOC invalide (mauvaise signature)` apparaît.
Que faire lorsque le certificat SSL a expiré
Que faire si une erreur ActionController :: UnknownFormat se produit
Erreur ExecJS :: RuntimeUnavailable: que faire quand cela se produit
[Ruby / Rails] Que faire lorsque NoMethodError apparaît lors de l'utilisation d'une méthode destructive comme le filtre!
[Tutoriel Rails Chapitre 2] Que faire lorsque vous faites une erreur dans le nom de la colonne
[Rails] Que faire si vous ne pouvez pas obtenir de message d'erreur avec la méthode des erreurs
Que faire si vous obtenez une erreur «302» dans le code de test du contrôleur dans Rails
[Rails 6] Que faire lorsqu'une erreur de modèle manquante se produit après l'introduction du haml [Super facile]