[RUBY] Was tun, wenn ein Fehler auftritt (StandardError: Ein Fehler ist aufgetreten, diese und alle späteren Migrationen wurden abgebrochen :) in Rails db: migrate

Einführung

Dies wird eine Lernnotiz sein.

Dieses Mal werden wir uns mit dem Fehler befassen, der nach dem Ausführen von $ Rails db: migrate oder $ Rails db: migrate auftritt.

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

Fortsetzung unten

Ursache

Ich denke, mit der Migration des Befehls, den ich das letzte Mal ausgeführt habe, stimmt etwas nicht. Wahrscheinlich ist in der Mitte des Migrationsprozesses ein Fehler aufgetreten, und die Tabelle wurde generiert, aber die Migration, die die Tabelle generiert hat, bleibt nicht ausgeführt. Ist es in einem solchen Zustand? Ich denke

Lösung

$ rails db:migrate:reset

Nach dem Zurücksetzen der Datenbank

$ rails db:migrate

Migrieren Sie erneut

Dieser Befehl wird verwendet, wenn Sie die Datenbank löschen, die neue Migrationsdatei ändern und die Migration erneut durchführen möchten.

$ rails db:migrate:reset

Nach dem Zurücksetzen der Datenbank tritt ein Fehler auf!

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)

Bewältigung

rake db:migrate:status

Überprüfen Sie den Status von db mit dem obigen Befehl. ⬇︎ Ausführungsinhalt

 up     20201013130002  Devise create users
 down    20201015132219  Add devise to users

Anscheinend ist die Migrationsdatei unten verdächtig. .. .. Ich habe den Editor überprüft Ich habe dieselbe Migrationsdatei zweimal erstellt. .. Versuchen Sie also, die Migrationsdatei unten zu löschen.

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

Dies wird erneut migriert. ⬇︎ Ausführungsergebnis

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

Ich konnte es ohne Probleme tun!

Schließlich

Diesmal habe ich Fehler bei der Migration erfahren. Das Zurücksetzen der Datenbank hat das Problem nicht gelöst. Die Ursache war eine doppelte Migrationsdatei.

Ich würde mich freuen, wenn Sie auf Fehler hinweisen könnten.

Recommended Posts

Was tun, wenn ein Fehler auftritt (StandardError: Ein Fehler ist aufgetreten, diese und alle späteren Migrationen wurden abgebrochen :) in Rails db: migrate
Was tun, wenn ein Fehler in Rails auftritt? DB: migrate ((StandardError: Ein Fehler ist aufgetreten, diese und alle späteren Migrationen wurden abgebrochen :))
Fehler in Docker-Schienen db: migrate (StandardError: Ein Fehler ist aufgetreten, alle späteren Migrationen wurden abgebrochen :)
[Rails] Was tun, wenn der Fehler Keine Datenbank ausgewählt und Unbekannte Datenbank in db: migrate angezeigt wird?
[Rails] Fehler StandardError: Ein Fehler ist aufgetreten, alle späteren Migrationen wurden abgebrochen: Spalte "Externer Schlüsselname" in Tabelle "Tabellenname" stimmt nicht mit Spalte "ID" in "Tabellenname" überein
[Programmieranfänger] Was tun, wenn Schienen zu einem Fehler in der lokalen Entwicklungsumgebung werden?
Was tun, wenn blockierter Host: "Hostname" in Ruby on Rails angezeigt wird
Was tun, wenn die ffi-Installation beim Starten einer Anwendung in Rails fehlschlägt?
Informationen zu dem Fehler, der beim Hinzufügen eines Spaltennamens in Rails aufgetreten ist (Rails DB: Migrieren, Rails DB: Rollback, Hinzufügen).
Was tun, wenn während des Rails-Testcodes ein Fehler bei der Standardauthentifizierung auftritt?
Was tun, wenn beim Installieren von Axios in einem React + Typescript-Projekt ein Fehler auftritt?
Was tun, wenn in einer Lightweight-JRE eine UnsupportedCharsetException auftritt?
Es wurde ein Fehler behoben, der beim Versuch auftrat, Spark in einer Umgebung zu verwenden, in der Java 8 und Java 11 gleichzeitig vorhanden sind
Fügen Sie gem'rails-i18n ',' ~> 6.0.0 'hinzu und was zu tun ist, wenn die Bundle-Installation einen Fehler anzeigt
Was tun, wenn ein Fehler auftritt, wenn nokogiri bei der Bundle-Installation eingeht?
Was ist zu tun, wenn auf den Schienen cHoge.connection aufruft, um eine Verbindung herzustellen? C.
Lösung, die beim Versuch, mit Java eine Verbindung zu DB (MySQL) herzustellen, einen Fehler verursacht
[Grails] Beim Ausführen ist ein Fehler aufgetreten. Was ist zu tun, wenn die Grails-CLI nicht gestartet wird?
Zusammenfassung beim Versuch, Solr in Java zu verwenden und eine Fehlermeldung zu erhalten (Solr 6.x)
Was ist zu tun, wenn in einer der Quellen in der Entwicklungsumgebung mit Docker × Rails × RSpec "Nicht gefunden" angezeigt wird?
Was tun, wenn beim Abrufen von Rails datetime_field die Fehlermeldung "Bitte geben Sie einen gültigen Wert ein" angezeigt wird?
[Rails] Was tun, wenn Sie einen Fehler generieren möchten, der nicht behoben werden kann, wenn externe Schlüsselbeschränkungen angewendet werden?
Was tun, wenn die Fehlermeldung "JavaScript-Laufzeit konnte nicht gefunden werden" angezeigt wird? Beim Starten des Rails-Servers
Was macht [Rails DB: Migrieren]?
Was tun, wenn in PlayFramework eine IllegalStateException auftritt?
[In der Teamentwicklung] Fehler beim Wechsel in den Zweig eines anderen Mitglieds und beim Ausführen von Rails s [Rails]
Was ist zu tun, wenn Fehler / Fehler: Datei erforderlich.expand_path ('../ config / environment', __dir__) in RSpec angezeigt wird
Was tun, wenn die bereits verwendete Adresse nach dem Ausführen der Schienen angezeigt wird?
[Rails] Was ist zu tun, wenn Rails db: migrate nicht ausgeführt werden kann, da keine Tabelle vorhanden ist, auf die der externe Schlüssel verweist?
<Punktinstallation> Was tun, wenn Sie aufgrund eines Fehlers beim Erstellen einer Entwicklungsumgebung für das Rails-Lernen nicht fortfahren können?
Ich habe dem Erstellungspfad in einem Eclipse-Projekt eine Jar-Datei hinzugefügt, aber die Situation und was zu tun ist, wenn "java.util.zip.ZipException: ungültiger LOC-Header (falsche Signatur)" angezeigt wird
Was tun, wenn das SSL-Zertifikat abgelaufen ist?
Was tun, wenn ein ActionController :: UnknownFormat-Fehler auftritt?
Fehler ExecJS :: RuntimeUnavailable: Was tun, wenn es auftritt?
[Ruby / Rails] Was tun, wenn NoMethodError angezeigt wird, wenn eine destruktive Methode wie Filter verwendet wird?
[Rails Tutorial Kapitel 2] Was tun, wenn Sie einen Fehlern im Spaltennamen machen?
[Schienen] Was tun, wenn mit der Fehlermethode keine Fehlermeldung angezeigt wird?
Was tun, wenn im Testcode der Steuereinheit in Rails der Fehler "302" angezeigt wird?
[Rails 6] Was tun, wenn nach der Einführung von haml ein fehlender Vorlagenfehler auftritt? [Super easy]