Saya tidak sengaja membuat migrasi dengan nama yang buruk (perintah:) php artisan migrate:make
. Saya tidak menjalankan ( php artisan migrate
) migrasi, jadi saya memutuskan untuk menghapusnya. Langkah saya:
- Hapus secara manual file migrasi di bawah
app/database/migrations/my_migration_file_name.php
- Setel ulang file autoload komposer:
composer dump-autoload
- Bersantai
Jika Anda menjalankan migrasi ( php artisan migrate
), Anda dapat melakukan ini:
a) Jalankan migrate:rollback
- ini adalah cara yang tepat untuk membatalkan migrasi terakhir (Thnx @Jakobud)
b) Jika migrate:rollback
tidak berhasil, lakukan secara manual (saya ingat bug dengan migrasi: rollback di versi sebelumnya):
- Hapus secara manual file migrasi di bawah
app/database/migrations/my_migration_file_name.php
- Setel ulang file autoload komposer:
composer dump-autoload
- Ubah database Anda: Hapus entri terakhir dari tabel migrasi
migrate:rollback
untuk mengembalikan migrasi, lalu hapus file migrasi dan dump autoload. Tidak perlu meretas db atau tabel migrasi.Jika migrasi telah dijalankan (baca: dimigrasikan) maka Anda harus memutar kembali migrasi Anda untuk menghapus riwayat dari tabel database Anda. Setelah Anda mundur, Anda seharusnya dapat menghapus file migrasi Anda dengan aman dan kemudian melanjutkan dengan migrasi lagi.
sumber
Harus melakukan pekerjaan itu, jika Anda dalam pengembangan dan hasil yang diinginkan adalah untuk memulai dari awal.
Dalam produksi, itu mungkin bukan hal yang diinginkan, jadi Anda harus beriklan. (Perintah migrasi: baru akan menghapus semua tabel dari database dan kemudian menjalankan perintah migrasi).
sumber
Anda mungkin perlu menghapus entri dari tabel migrasi juga.
sumber
Saya tidak sengaja membuat dua kali create_users_table. Itu mengesampingkan beberapa kelas dan mengubah rollback menjadi ErrorException.
Yang perlu Anda lakukan adalah menemukan autoload_classmap.php di folder vendor / composer dan mencari baris kode tertentu seperti
dan edit jalur. Maka kembalikan Anda harus baik-baik saja.
sumber
Saya setuju dengan jawaban saat ini, saya hanya ingin menambahkan sedikit informasi.
Fitur baru telah ditambahkan ke Laravel 5.3 dan versi di atas yang akan memungkinkan Anda untuk mundur satu migrasi:
setelah itu, secara manual menghapus file migrasi di bawah
database/migrations/my_migration_file_name.php
Ini adalah fitur hebat ketika Anda menjalankan migrasi
Dengan cara ini, Anda dapat menghapus migrasi dalam laravel dengan aman hanya dalam 2 langkah
sumber
Saya lebih suka melakukannya secara manual
...database/migrations
folderphp artisan migrate
, login ke phpmyadmin atau SQL Anda (mana pun masalahnya) dan dalam database Anda, hapus tabel yang dibuat oleh migrasiBekerja untuk saya, semoga membantu!
sumber
Ini bekerja untuk saya:
php artisan migrate:refresh
di laravel 5.5.43
sumber