So fügen Sie in einer Migration eine neue Spalte in die vorhandene Tabelle hinzu

So fügen Sie in einer Migration eine neue Spalte in die vorhandene Tabelle hinzu

Problem

Ich hatte Albträume, die mir nicht eine neue Kolumne hinzufügen konnten Benutzer Tisch. Kann es nicht herausfinden.

Ich habe versucht, die Migrationsdatei mit…

öffentliche Funktion ()

Schema :: Create ('Benutzer', Funktion ($ Tabelle)
$ table-> Integer ("bezahlt");
);

Im Terminal führen ich aus PHP Artisan Migrate: Installation Und Wandern.

Wie füge ich neue Spalten hinzu?

Lösung

Sie können keine Migrationen aktualisieren, die bereits migriert wurden. Wenn es bereits in die Migrationstabelle hinzugefügt wird, wird es nicht erneut verarbeitet. Ihre Lösung besteht darin, eine neue Migration zu erstellen, für die Sie die verwenden können migrieren: mach Befehl über die Handwerker Cli. Verwenden Sie einen bestimmten Namen, um das Zusammenstoß mit vorhandenen Modellen zu vermeiden

Für Laravel 5+:

PHP Artisan Make: Migration add_paid_to_users_table - -table = Benutzer

Sie werden die Schema :: table () -Methode verwenden (da Sie auf die vorhandene Tabelle zugreifen und keine neue erstellen). Und Sie können eine solche Spalte hinzufügen:

öffentliche Funktion ()

Schema :: Tabelle ('Benutzer', Funktion ($ Tabelle)
$ table-> Integer ('bezahlt');
);

Und vergessen Sie nicht, die Rollback -Option hinzuzufügen:

öffentliche Funktion Down ()

Schema :: Tabelle ('Benutzer', Funktion ($ Tabelle)
$ table-> DropColumn ('bezahlt');
);

Dann können Sie Ihre Migrationen ausführen:

PHP Artisan migrieren

Und für Laravel 5:

  • Schemabauer
  • Migrationen

Bearbeiten:

verwenden $ table-> Integer ('bezahlt')-> nach ('Any_Column'); So fügen Sie dieses Feld nach einer bestimmten Spalte hinzu.