Tabel Riwayat Migrasi Kustom
Secara default, EF Core melacak migrasi mana yang telah diterapkan ke database dengan merekamnya dalam tabel bernama __EFMigrationsHistory
. Untuk berbagai alasan, Anda mungkin ingin menyesuaikan tabel ini agar lebih sesuai dengan kebutuhan Anda.
Penting
Jika Anda mengkustomisasi tabel Riwayat Migrasi setelah menerapkan migrasi, Anda bertanggung jawab untuk memperbarui tabel yang sudah ada dalam database.
Skema dan nama tabel
Anda dapat mengubah skema dan nama tabel menggunakan MigrationsHistoryTable()
metode di OnConfiguring()
(atau ConfigureServices()
di ASP.NET Core). Berikut adalah contoh menggunakan penyedia SQL Server EF Core.
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseSqlServer(
_connectionString,
x => x.MigrationsHistoryTable("__MyMigrationsHistory", "mySchema"));
Perubahan lain
Untuk mengonfigurasi aspek tambahan tabel, ambil alih dan ganti layanan khusus IHistoryRepository
penyedia. Berikut adalah contoh mengubah nama kolom MigrationId menjadi Id di SQL Server.
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options
.UseSqlServer(_connectionString)
.ReplaceService<IHistoryRepository, MyHistoryRepository>();
Peringatan
SqlServerHistoryRepository
berada di dalam namespace internal dan dapat berubah dalam rilis mendatang.
internal class MyHistoryRepository : SqlServerHistoryRepository
{
public MyHistoryRepository(HistoryRepositoryDependencies dependencies)
: base(dependencies)
{
}
protected override void ConfigureTable(EntityTypeBuilder<HistoryRow> history)
{
base.ConfigureTable(history);
history.Property(h => h.MigrationId).HasColumnName("Id");
}
}
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk