Saya telah IgnoreChanges
menghapus migrasi saya, saya gunakan pada migrasi awal, tetapi sekarang saya ingin menghapus semua migrasi saya dan mulai dengan migrasi awal dengan semua logika.
Ketika saya menghapus migrasi di folder dan mencoba dan Add-Migration
tidak menghasilkan file lengkap (itu kosong - karena saya belum membuat perubahan sejak migrasi saya yang terakhir, tetapi sekarang dihapus,).
Apakah ada perintah Disable-Migrations , sehingga saya bisa menjalankan kembali Enable-Migrations
?
Jawaban:
Kamu butuh :
__MigrationHistory
tabel dalam database Anda (mungkin di bawah tabel sistem); KemudianJalankan perintah berikut di Package Manager Console:
Gunakan dengan atau tanpa
-EnableAutomaticMigrations
Dan akhirnya, Anda dapat menjalankan:
sumber
Masalah: Anda telah menghapus migrasi Anda dan Anda ingin mengatur ulang tanpa menghapus tabel yang ada.
Masalahnya: Anda tidak dapat mengatur ulang migrasi dengan tabel yang ada di database karena EF ingin membuat tabel dari awal.
Apa yang harus dilakukan:
Hapus migrasi yang ada dari tabel Migrations_History.
Hapus migrasi yang ada dari Folder Migrasi.
Jalankan Reset tambah migrasi. Ini akan membuat migrasi di folder Migrasi Anda yang termasuk membuat tabel (tetapi tidak akan menjalankannya sehingga tidak akan keluar kesalahan.)
Anda sekarang perlu membuat baris awal di tabel MigrationHistory sehingga EF memiliki snapshot dari kondisi saat ini. EF akan melakukan ini jika Anda menerapkan migrasi. Namun, Anda tidak dapat menerapkan migrasi yang baru saja Anda buat karena tabel sudah ada di database Anda. Jadi pergilah ke Migrasi dan komentar semua kode di dalam metode "Naik".
Sekarang jalankan pembaruan-database. Ini akan menerapkan Migrasi (walaupun tidak benar-benar mengubah database) dan membuat baris snapshot di MigrationHistory.
Anda sekarang telah mengatur ulang migrasi Anda dan dapat melanjutkan dengan migrasi normal.
sumber
Bagaimana tentang
dalam Paket Pengelola Konsol? Seharusnya mengatur ulang semua pembaruan ke kondisi paling awal.
Tautan referensi: Migrasi Pertama Kode - Bermigrasi ke Versi Tertentu (Termasuk Downgrade)
sumber
Untuk memperbaikinya, Anda harus:
Hapus semua file * .cs di Folder Migrasi.
Hapus Tabel _MigrationHistory di Database
Lari
Enable-Migrations -EnableAutomaticMigrations -Force
Lari
Add-Migration Reset
Kemudian, di
public partial class Reset : DbMigration
kelas, Anda perlu mengomentari semua Tabel yang ada dan saat ini:Jika Anda melewatkan sedikit ini semua akan gagal dan Anda harus memulai lagi!
Update-Database -verbose
Ini harus berhasil jika Anda telah melakukan hal di atas dengan benar, dan sekarang Anda dapat melanjutkan seperti biasa.
sumber
Mempertimbangkan ini masih muncul ketika kita mencari EF di .NET Core, saya akan memposting jawaban saya di sini (Karena sudah banyak menghantui saya). Perhatikan bahwa ada beberapa seluk-beluk dengan versi EF .NET (tidak ada perintah awal, dan Anda harus menghapus file "Foto")
(Diuji dalam. NET Core 2.1)
Berikut langkah-langkahnya:
_efmigrationhistory
tabel.ApplicationDbContextSnapshot.cs
, dan hapus .Add-Migration InitialMigration
Harap dicatat: Anda harus menghapus SEMUA file Snapshot . Saya menghabiskan banyak waktu hanya menghapus basis data ... Ini akan menghasilkan migrasi kosong jika Anda tidak melakukannya.
Juga, di # 3 Anda bisa memberi nama migrasi Anda seperti yang Anda inginkan.
Berikut adalah beberapa sumber tambahan: asp.net INTI Migrasi yang dihasilkan kosong
Atur ulang migrasi Entity Framework 7
sumber
Di EntityFramework 6 silakan coba:
untuk memperbarui file migrasi awal.
sumber
Dalam Entity Framework Core.
sumber
Masalah saya ternyata adalah bahwa saya secara manual menghapus folder Migrasi. Saya melakukan itu karena saya ingin mencadangkan konten, jadi saya cukup menyeret folder keluar dari proyek. Saya kemudian memperbaiki masalah dengan memasukkannya kembali (setelah membuat salinan cadangan), kemudian menghapus folder Migrasi dengan mengklik kanan di Solutions Explorer dan memilih Delete dari menu popup.
sumber
Di EF6
Add-Migration Initial
.sumber
Hapus tersebut
Migrations
Folder,Clean
makaRebuild
proyek tersebut. Ini berhasil untuk saya. Sebelum Bersih dan Bangun Kembali dikatakan Migrasi sudah ada sejak dalam memori cache, itu belum dihapus.sumber
Metode ini tidak perlu menghapus
__MigrationHistory
tabel, jadi Anda tidak harus meletakkan tangan pada database saat digunakan.Add-Migration ResetMigrations
Up()
metode:sumber
Di Net Core 3.0:
Saya tidak dapat menemukan cara untuk Mengatur Ulang Migrasi .
Saya juga mengalami masalah dengan migrasi yang rusak, dan jawaban yang diberikan di sini tidak bekerja untuk saya. Saya memiliki .Net Core 3.0 web API, dan di suatu tempat di bulan lalu saya mengedit database secara langsung. Ya, saya melakukan hal yang buruk.
Strategi yang disarankan di sini mengakibatkan sejumlah kesalahan dalam Package Manager Console:
Memang, saya mungkin telah melewatkan langkah atau melewatkan membersihkan file yang benar, tetapi saya menemukan bahwa ada cara untuk membersihkan ini tanpa banyak kekerasan:
Sekarang ketika API web dimulai dengan basis data kosong, ia dengan benar membuat semua tabel dan properti yang cocok dengan model entitas.
HTH!
sumber
UPDATE 2020
ApplicationDbContext => Konteks Anda.
sumber
sumber