Hallo, lesen Sie die gesamte mitgelieferte Dokumentation hier unter https://laravel.com/docs/5.4/migrations .
Gibt es eine Möglichkeit, eine bestimmte Migrationsdatei zu migrieren (nur 1 Migration), da jedes Mal, wenn ich eine Änderung verwende php artisan migrate:refresh
und alle Felder zurückgesetzt werden.
laravel
migration
laravel-5.4
Martney Acha
quelle
quelle
Sie sollten den Pfad zu Ihrer Migrationsdatei hinzufügen, um nur diese Tabelle zu aktualisieren und auszuführen
quelle
Schau dir das an
migrations
Tabelle in Ihrer Datenbank an. Es wird eine Liste mit dem Namen der Migrationsdatei und dem Wert der Chargennummer angezeigt.Angenommen, Sie haben folgende Struktur:
id migration batch 1 2014_10_12_000000_create_users_table 1 2 2014_10_12_100000_create_password_resets_table 1 3 2016_09_07_103432_create_tabel_roles 1
Wenn Sie nur die
2016_09_07_103432_create_tabel_roles
Migration zurücksetzen möchten , ändern Sie den Migrationsstapelwert auf 2, der unter allen am höchsten ist, und führen Sie dann einfach Folgendes aus.Hier wird nur die Tabelle mit dem Stapelwert 2 zurückgesetzt. Nehmen Sie nun Änderungen an dieser Tabelle vor und führen Sie den folgenden Konsolenbefehl aus.
Chargenwert in der
migrations
Tabelle definiert die Reihenfolge der Migrationen. Wenn Sie ein Rollback durchführen, werden Migrationen, die aktuell sind oder den höchsten Stapelwert haben, zuerst und dann andere zurückgesetzt. Sie können also den Wert in der Datenbank ändern und dann eine bestimmte Migrationsdatei zurücksetzen.Obwohl es aufgrund der Beziehung zwischen der Tabellenstruktur nicht ratsam ist, die Chargennummer jedes Mal zu ändern, können wir diesen Fall in einigen Fällen verwenden, in denen das Zurücksetzen einzelner Tabellen die Integrität zwischen den Tabellen nicht verletzt.
Ich hoffe du verstehst.
quelle
Wenn Sie die Registerkarte für die automatische Vervollständigung verwenden
php artisan migrate --path='./database/migrations/2019_12_31_115457_create_coworking_personal_memberships_table.php'
quelle
Sie müssen die Datei (en) in ein neues Verzeichnis (z. B. ausgewählt) legen und dann anwenden
Wenn Sie einen Rollback benötigen:
Hinweis:
Dadurch werden alle Migrationsdateien im Standardverzeichnis (/ database / migrations) zurückgesetzt und anschließend migriert.
quelle
Sie können einen Befehl wie diesen ausführen
php artisan migrate --path=/database/migrations/2020_04_10_130703_create_test_table.php
quelle
Sie sehen die Option:
Übrigens können Sie wahrscheinlich den Stammordner der Datei angeben, die Sie migrieren möchten:
Oder Sie können bei Migrationen einen neuen Ordner erstellen und dann alle gewünschten Migrationsdateien darin migrieren:
quelle
Ich wollte nur eine andere Lösung veröffentlichen, die meiner Meinung nach erwähnenswert ist.
Es wird nur die Tabelle migriert, die Sie benötigen, und es wird nichts anderes berührt
quelle
Wenn Sie eine bestimmte Tabelle erstellen möchten. Sie können diesen Code verwenden. Es funktioniert für Laravel (5.x) -Versionen.
quelle
Sie können nur einen Rollback durchführen:
https://laravel.com/docs/5.4/migrations#rolling-back-migrations
Mit der Option "Schritt" können Sie angeben, auf wie viele Migrationen zurückgesetzt werden soll:
php artisan migrate:rollback --step=1
Einige Tricks finden Sie hier:
Rollback einer bestimmten Migration in Laravel
quelle
Löschen Sie die Tabelle und entfernen Sie ihren Datensatz aus der Migrationstabelle.
Danach führen Sie einfach die Migration erneut aus:
quelle
Korrektur - Entfernen Sie den Schrägstrich vor der Datenbank
quelle
Spezifische Tabellenmigration
quelle
Oder Sie können einfach den Namen der Migrationsdatei aus Ihrer Datenbank in der Tabelle "Migrationen" löschen und dann Folgendes ausführen: PHP Artitsan Migration
quelle
Sie können versuchen, mit der Option --path = den spezifischen Unterordner zu definieren, den Sie ausführen möchten, und dort bestimmte Migrationen zu platzieren.
Alternativ müssten Sie Verweise und Tabellen aus der Datenbank und den Migrationstabellen entfernen, was nicht ideal ist: /
quelle
Wenn Sie eine andere Tabelle erstellen möchten, erstellen Sie einfach eine neue Migrationsdatei. Es wird funktionieren.
Wenn Sie eine Migration erstellen namens
users_table
mitid, first_name, last_name
. Sie können eine Migrationsdatei wie erstellenpublic function up() { Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('first_name',255); $table->string('last_name',255); $table->rememberToken(); $table->timestamps(); }); } public function down() { Schema::dropIfExists('users'); }
Wenn Sie ein weiteres Feld wie "Status" ohne Migration hinzufügen möchten: Aktualisieren. Sie können eine weitere Migrationsdatei wie "add_status_filed_to_users_table" erstellen.
public function up() { Schema::table('users', function($table) { $table->integer('status'); }); }
Und vergessen Sie nicht, die Rollback-Option hinzuzufügen:
public function down() { Schema::table('users', function($table) { $table->dropColumn('status'); }); }
Wenn Sie migrate with ausführen
php artitsan migration
, wird lediglich die neue Migrationsdatei migriert.Wenn Sie jedoch der ersten Verwaltungsdatei (users_table) den Status "archiviert" hinzufügen und die Migration ausführen. Es ist nichts zu migrieren. Du musst rennen
php artisan migrate:refresh
.Ich hoffe das hilft.
quelle
Installieren Sie dieses Paket
https://github.com/nilpahar/custom-migration/
und führen Sie diesen Befehl aus.
quelle
php artisan migrate --path = / database / migrations / fileName.php
Folgen Sie einfach der Anweisung, um diesen Befehlsdateinamen auszuführen. Hier sollte der Name Ihrer Migrationstabelle sein. Beispiel: php artisan migrate --path = / database / migrations / 2020_02_21_101937_create_jobs_table.php
quelle
Sie können dies verwenden.
-> https://packagist.org/packages/sayeed/custom-migrate
-> https://github.com/nilpahar/custom-migration/
Dies ist sehr einfach zu bedienen
quelle
Sie können diesen Befehl nur in Ihrem Terminal ausführen
php artisan migrate --path=database/migrations/2020_10_01_164611_create_asset_info_table.php
Nach der Migration sollten Sie den jeweiligen Dateinamen eingeben. Wenn sich in der Migration ein Ordner befindet, fügen Sie diesen Ordnernamen nach der Migration hinzu.
So was
php artisan migrate --path=database/migrations/yourfolder/2020_10_01_164611_create_asset_info_table.php
Ich hoffe, das wird dir ein bisschen helfen. Viel Spaß beim Codieren.
quelle
Zuerst sollten Sie die folgenden Befehle ausführen:
Schritt 1:
Schritt 2:
Ihre Tabelle wird wieder in der Datenbank gespeichert.
quelle
php artisan migration:refresh
dient das gleiche.