Ich habe versehentlich eine Migration mit einem schlechten Namen erstellt (Befehl :) php artisan migrate:make
. Ich habephp artisan migrate
die Migration nicht ausgeführt ( ), daher habe ich beschlossen, sie zu entfernen. Meine Schritte:
- Löschen Sie die Migrationsdatei manuell unter
app/database/migrations/my_migration_file_name.php
- Setzen Sie die Autoload-Dateien des Komponisten zurück:
composer dump-autoload
- Entspannen
Wenn Sie die Migration ( php artisan migrate
) ausgeführt haben, können Sie Folgendes tun:
a) Ausführen migrate:rollback
- Dies ist der richtige Weg, um die letzte Migration rückgängig zu machen (Thnx @Jakobud).
b) Wenn migrate:rollback
dies nicht funktioniert, machen Sie es manuell (ich erinnere mich an Fehler mit migrate: rollback in früheren Versionen):
- Löschen Sie die Migrationsdatei manuell unter
app/database/migrations/my_migration_file_name.php
- Setzen Sie die Autoload-Dateien des Komponisten zurück:
composer dump-autoload
- Ändern Sie bitte Ihre Datenbank: Entfernen Sie den letzten Eintrag aus der Migrationen Tabelle
migrate:rollback
die Migration zurückzusetzen, dann die Migrationsdatei zu löschen und das automatische Laden zu sichern. Sie müssen weder die Datenbank noch die Migrationstabelle hacken.Wenn die Migration ausgeführt wurde (lesen: migriert), sollten Sie Ihre Migration zurücksetzen, um den Verlauf aus Ihrer Datenbanktabelle zu löschen. Nach dem Zurücksetzen sollten Sie in der Lage sein, Ihre Migrationsdatei sicher zu löschen und anschließend erneut zu migrieren.
quelle
Sollte den Job machen, wenn Sie in der Entwicklung sind und das gewünschte Ergebnis ist, von vorne zu beginnen.
In der Produktion ist das vielleicht nicht das Gewünschte, also sollten Sie beworben werden. (Der Befehl migrate: fresh löscht alle Tabellen aus der Datenbank und führt dann den Befehl migrate aus.)
quelle
Wahrscheinlich müssen Sie den Eintrag auch aus der Migrationstabelle löschen.
quelle
Ich habe versehentlich zweimal create_users_table erstellt. Es hat einige Klassen überschrieben und das Rollback in ErrorException umgewandelt.
Was Sie tun müssen, ist autoload_classmap.php im Vendor / Composer-Ordner zu finden und nach der spezifischen Codezeile zu suchen, wie z
und Pfad bearbeiten. Dann sollte Ihr Rollback in Ordnung sein.
quelle
Ich stimme den aktuellen Antworten zu, ich möchte nur ein wenig mehr Informationen hinzufügen.
In Laravel 5.3 und höher wurde eine neue Funktion hinzugefügt, mit der Sie eine einzelne Migration zurücksetzen können:
Löschen Sie anschließend die Migrationsdatei manuell unter
database/migrations/my_migration_file_name.php
Dies ist eine großartige Funktion, wenn Sie eine Migration ausführen
Auf diese Weise können Sie die Migration in Laravel nur in zwei Schritten sicher entfernen
quelle
Ich werde es lieber manuell machen
...database/migrations
Ordnerphp artisan migrate
, melden Sie sich bei Ihrem phpmyadmin oder SQL an (je nachdem, was der Fall ist) und löschen Sie in Ihrer Datenbank die durch die Migration erstellte TabelleFunktioniert für mich, hoffe es hilft!
quelle
Das funktioniert bei mir:
php artisan migrate:refresh
in Laravel 5.5.43
quelle