web-dev-qa-db-de.com

Entfernen Sie sicher die Migration in Laravel

In Laravel scheint es einen Befehl zu geben, eine Migration zu erstellen, aber nicht zu entfernen.

Migrationsbefehl erstellen:

php artisan migrate:make create_users_table

Kann ich die entsprechende Migrationsdatei im Datenbank-/Migrationsordner einfach löschen, wenn ich die Migration löschen möchte?

Migrationsdatei:

2013_05_31_220658_create_users_table
161
Globalz

Ich habe versehentlich eine Migration mit einem falschen Namen erstellt (Befehl: php artisan migrate:make). Ich habe die Migration nicht ausgeführt (php artisan migrate), also habe ich mich entschieden, sie zu entfernen ..__ Meine Schritte:

  1. Löschen Sie die Migrationsdatei manuell unter app/database/migrations/my_migration_file_name.php.
  2. Setzen Sie die autoload-Dateien des Composers zurück:composer dump-autoload
  3. Entspannen Sie Sich

Wenn Sie die Migration ausgeführt haben (php artisan migrate), können Sie Folgendes tun:

a) Run migrate:rollback - es ist der richtige Weg, die letzte Migration rückgängig zu machen (Thnx @Jakobud)

b) Wenn migrate:rollback nicht funktioniert, mache es manuell (ich erinnere mich an Fehler bei der Migration: Rollback in früheren Versionen):

  1. Löschen Sie die Migrationsdatei manuell unter app/database/migrations/my_migration_file_name.php.
  2. Setzen Sie die autoload-Dateien des Composers zurück:composer dump-autoload
  3. Ändern Sie Ihre Datenbank: Entfernen Sie den letzten Eintrag aus der Tabelle migrations
309
malisokan

Wenn die Migration ausgeführt wurde (read: migriert), sollten Sie Ihre Migration rückgängig machen, um den Verlauf aus Ihrer Datenbanktabelle zu löschen. Sobald Sie einen Rollback ausgeführt haben, sollten Sie Ihre Migrationsdatei sicher löschen und anschließend mit der Migration fortfahren können.

64
Jason Lewis

Sie müssen wahrscheinlich auch den Eintrag aus der Migrationstabelle löschen.

12
Stephane

Ich habe versehentlich zwei mal create_users_table erstellt. Einige Klassen wurden überschrieben und das Rollback in ErrorException umgewandelt.

Was Sie tun müssen, ist autoload_classmap.php im Vendor/Composer-Ordner zu finden und nach einer bestimmten Codezeile wie z

'CreateUsersTable' => $baseDir . '/app/database/migrations/2013_07_04_014051_create_users_table.php',

und Pfad bearbeiten. Dann sollte Ihr Rollback in Ordnung sein.

6
JR Tan
 php artisan migrate:fresh

Sollte die Arbeit erledigen, wenn Sie in der Entwicklung sind und das gewünschte Ergebnis von vorne anfangen soll. 

In der Produktion ist das vielleicht nicht das gewünschte, deshalb sollte man beworben werden. (Mit dem Befehl migrate: fresh werden alle Tabellen aus der Datenbank gelöscht und der Migrationsbefehl ausgeführt.).

4
joash

Ich stimme den aktuellen Antworten zu, ich möchte nur ein wenig mehr Informationen hinzufügen.

InLaravel 5.3 und höher Versionwurde eine neue Funktion hinzugefügt, mit der Sie eine einzelne Migration rückgängig machen können:

php artisan migrate:rollback --step=1

löschen Sie anschließend die Migrationsdatei unter database/migrations/my_migration_file_name.php manuell.

Dies ist eine großartige Funktion für die Ausführung einer Migration.

Auf diese Weise können Sie die Migration in Laravel nur in 2 Schritten sicher entfernen

1
Udhav Sarvaiya

Das funktioniert für mich:

  1. Ich habe alle Tabellen in meiner Datenbank gelöscht, hauptsächlich die Migrationstabelle.
  2. php artisan migrate:refresh

in Laravel 5.5.43

0
ederrafo