Cześć, przeczytaj całą dołączoną dokumentację tutaj w https://laravel.com/docs/5.4/migrations .
Czy istnieje sposób na migrację określonego pliku migracji (tylko 1 migracja), ponieważ teraz za każdym razem, gdy jest zmiana, której używam, php artisan migrate:refresh
i wszystkie pola są resetowane.
laravel
migration
laravel-5.4
Martney Acha
źródło
źródło
należy dodać ścieżkę do pliku migracji, aby odświeżyć tylko tę tabelę i uruchomić
źródło
Wystarczy spojrzeć na
migrations
tabelę w bazie danych, pojawi się lista nazw plików migracji i wartości numeru partii.Załóżmy, że masz następującą 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
Jeśli chcesz po prostu wycofać
2016_09_07_103432_create_tabel_roles
migrację, zmień wartość partii migracji na 2, która jest najwyższa spośród wszystkich, a następnie wykonaj następujące czynności.Tutaj tylko tabela z wartością partii 2 zostanie wycofana. Teraz wprowadź zmiany w tej tabeli i uruchom następujące polecenie konsoli.
Wartość partii w
migrations
tabeli określa kolejność migracji. podczas wycofywania migracje, które są najnowsze lub mają najwyższą wartość wsadu, są najpierw wycofywane, a następnie inne. Możesz więc zmienić wartość w bazie danych, a następnie przywrócić określony plik migracji.Chociaż zmiana numeru partii za każdym razem nie jest dobrym pomysłem ze względu na relacje między strukturą tabeli, możemy zastosować ten przypadek w niektórych przypadkach, w których wycofanie pojedynczej tabeli nie narusza integralności między tabelami.
Nadzieję, że rozumiesz.
źródło
jeśli używasz zakładki do autouzupełniania
php artisan migrate --path='./database/migrations/2019_12_31_115457_create_coworking_personal_memberships_table.php'
źródło
Musisz umieścić plik (i) w nowym katalogu (np .: wybrany), a następnie zastosować
jeśli potrzebujesz wycofania:
Uwaga:
spowoduje to wycofanie, a następnie migrację wszystkich plików migracji w domyślnym katalogu (/ database / migrations)
źródło
Możesz uruchomić polecenie w ten sposób
php artisan migrate --path=/database/migrations/2020_04_10_130703_create_test_table.php
źródło
Zobaczysz opcję:
Przy okazji możesz prawdopodobnie wskazać folder główny pliku, który chcesz przenieść:
Możesz też utworzyć nowy folder w migracji, a następnie przeprowadzić migrację wszystkich plików migracji, które chcesz w nim umieścić:
źródło
Chciałem tylko opublikować inne rozwiązanie, o którym myślę, że warto wspomnieć.
Przeniesie tylko potrzebną tabelę i nie będzie dotykać niczego innego
źródło
Jeśli chcesz stworzyć jedną i konkretną tabelę. Możesz użyć tego kodu. Działa z wersjami laravel (5.x).
źródło
Możesz tylko wycofać:
https://laravel.com/docs/5.4/migrations#rolling-back-migrations
Możesz określić liczbę migracji do przywrócenia za pomocą opcji „krok”:
php artisan migrate:rollback --step=1
Niektóre sztuczki są dostępne tutaj:
Wycofaj jedną konkretną migrację w Laravel
źródło
Usuń tabelę i usuń jej rekord z tabeli migracji.
Następnie ponownie uruchom migrację:
źródło
Korekta - usuń ukośnik przed bazą danych
źródło
Migracja określonej tabeli
źródło
Możesz też po prostu usunąć nazwę pliku migracji z bazy danych, w tabeli „migracje”, a następnie uruchomić: php artitsan migracja
źródło
Możesz spróbować użyć opcji --path =, aby zdefiniować określony podfolder, który chcesz wykonać, i umieścić w nim określone migracje.
Alternatywnie musiałbyś usunąć odniesienia i tabele z bazy danych i tabel migracji, co nie jest idealne: /
źródło
Jeśli chcesz utworzyć kolejną tabelę, po prostu utwórz nowy plik migracji. To zadziała.
Jeśli utworzysz migrację o nazwie
users_table
zid, first_name, last_name
. Możesz utworzyć plik migracji, taki jakpublic 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'); }
Jeśli chcesz dodać kolejne pole, takie jak „status”, bez migracji: odśwież. Możesz utworzyć inny plik migracji, np. „Add_status_filed_to_users_table”
public function up() { Schema::table('users', function($table) { $table->integer('status'); }); }
I nie zapomnij dodać opcji przywracania:
public function down() { Schema::table('users', function($table) { $table->dropColumn('status'); }); }
A kiedy uruchomisz migrację za pomocą
php artitsan migration
, po prostu dokonaj migracji nowego pliku migracji.Ale jeśli dodasz „status” do pierwszego pliku mgration (tabela_użytkowników) i uruchomisz migrację. Nie ma nic do migracji. Musisz biec
php artisan migrate:refresh
.Mam nadzieję, że to pomoże.
źródło
zainstaluj ten pakiet
https://github.com/nilpahar/custom-migration/
i uruchom to polecenie.
źródło
php artisan migrate --path = / database / migrations / fileName.php
Po prostu postępuj zgodnie z instrukcją, wykonaj tę właściwą nazwę pliku, tutaj powinna być nazwa Twojej tabeli migracji Przykład: php artisan migrate --path = / database / migrations / 2020_02_21_101937_create_jobs_table.php
źródło
Możesz tego użyć.
-> https://packagist.org/packages/sayeed/custom-migrate
-> https://github.com/nilpahar/custom-migration/
jest to bardzo łatwe w użyciu
źródło
Możesz uruchomić to polecenie tylko w swoim terminalu
php artisan migrate --path=database/migrations/2020_10_01_164611_create_asset_info_table.php
Po migracji należy podać konkretną nazwę pliku. lub jeśli masz jakiś folder wewnątrz migracji, po prostu dodaj nazwę tego folderu po migracji.
Lubię to
php artisan migrate --path=database/migrations/yourfolder/2020_10_01_164611_create_asset_info_table.php
Mam nadzieję, że to ci trochę pomoże. Miłego kodowania.
źródło
Najpierw powinieneś wykonać następujące polecenia:
Krok 1:
Krok 2:
Twój stół wróci do bazy danych.
źródło
php artisan migration:refresh
Służy również temu samemu.