-
- 19 مهر 1404
- برنامه نویسی دیتابیس
در پروژههای بزرگ ASP.NET، مدیریت تغییرات پایگاه داده یکی از مهمترین چالشها است. هر بار که مدلهای داده تغییر میکنند، باید دیتابیس هم بروزرسانی شود، بدون اینکه دادههای موجود از بین بروند. Migration راهکاری است که این مشکل را حل میکند و توسط Entity Framework ارائه شده است.
Migration چیست؟
Migration به معنای مدیریت تغییرات ساختار دیتابیس در طول زمان است.
مزایای Migration:
-
جلوگیری از ناسازگاری بین مدلها و دیتابیس
-
امکان نسخهبندی تغییرات دیتابیس
-
سادهسازی کار تیمی و توسعه همزمان
Migration به شما اجازه میدهد تغییرات مدلها را به صورت نسخهبندی شده روی دیتابیس اعمال کنید و حتی در صورت نیاز به نسخه قبلی برگردید.
انواع Migration در EntityFramwork
-
Automatic Migration
تغییرات مدل به صورت خودکار روی دیتابیس اعمال میشوند. این روش سریع است اما کنترل کمی به توسعهدهنده میدهد. -
Code-based Migration (توصیهشده)
توسعهدهنده کنترل کامل روی تغییرات دارد و میتواند Migration را دقیقاً مدیریت کند، نسخهبندی انجام دهد و در صورت نیاز rollback کند.
راهاندازی Migration در پروژه ASP.NET
1. نصب Entity Framework
ابتدا باید Entity Framework را نصب کنید:
Install-Package EntityFramework
2. فعال کردن Migration
Enable-Migrations
3. ایجاد اولین Migration
Add-Migration InitialCreate
این دستور یک کلاس Migration ایجاد میکند که شامل تمام تغییرات مدل فعلی است.
4. اعمال Migration روی دیتابیس
Update-Database
با اجرای این دستور، دیتابیس مطابق با مدل شما بروزرسانی میشود.
مدیریت تغییرات دیتابیس
افزودن ستون جدید
مثال: افزودن ستون Price به جدول Product
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; } // ستون جدید
}
سپس:
Add-Migration AddPriceToProduct
Update-Database
تغییر نوع داده یک ستون
Migration جدید ایجاد میکنید و نوع داده ستون را تغییر میدهید.
حذف ستون یا جدول
ستون یا جدول موردنظر را از مدل حذف کرده و Migration جدید ایجاد میکنید:
Add-Migration RemoveOldColumn
Update-Database
Rollback به نسخه قبلی
برای بازگشت به یک نسخه قبلی:
Update-Database PreviousMigrationName
حذف آخرین Migration که هنوز روی دیتابیس اعمال نشده
Remove-Migration
گرفتن اسکریپت SQL از Migration
گاهی نیاز دارید Migration را به صورت اسکریپت SQL دریافت کنید تا روی دیتابیس به روش دستی یا در محیط Production اعمال شود.
گرفتن اسکریپت کامل
Script-Migration
این دستور تمام Migrationهای اعمال نشده را به یک فایل SQL تبدیل میکند و میتوانید آن را در SQL Server اجرا کنید.
گرفتن اسکریپت بین دو Migration مشخص
اگر بخواهید تغییرات بین دو Migration مشخص را دریافت کنید:
Script-Migration -From <PreviousMigration> -To <LastMigration>
-
PreviousMigration: نسخه آغازین -
LastMigration: نسخه پایانی
با این روش میتوانید Migration را بدون اجرای مستقیم روی دیتابیس اعمال کنید و کنترل بیشتری داشته باشید.
نکات کاربردی
-
قبل از اعمال Migration روی دیتابیس اصلی، همیشه نسخه پشتیبان تهیه کنید
-
Migration را ابتدا در محیط توسعه و تست اجرا کنید
-
از متد Seed برای وارد کردن داده اولیه استفاده کنید
-
برای پروژههای تیمی، Migration را نسخهبندی و کنترل کنید تا از برخورد تغییرات جلوگیری شود
-
گرفتن اسکریپت SQL بسیار مفید است برای محیط Production یا اعمال تغییرات دیتابیس توسط تیم DBA
نتیجهگیری
Migration در ASP.NET با Entity Framework ابزاری قدرتمند برای مدیریت تغییرات دیتابیس است. این روش باعث میشود مدلها و دیتابیس همیشه همگام باشند و تغییرات بدون از دست رفتن دادهها اعمال شوند. علاوه بر این، با قابلیت گرفتن اسکریپت SQL، کنترل و امنیت بیشتری روی محیط Production خواهید داشت.
نظر خود را اینجا بنویسید