اضافه کردن migration جدید با کد
با سلام .
چطور میتوان تغییرات در یک جدول بانک اطلاعاتی را بعد از اینکه migration را فعال کردیم . بصورت دستی با کد های C# تغییر بدهیم . منظورم این است که بجای اینکه در کلاس مورد نظر پراپرتی را اضافه کنیم و بعد از دستور add-migration و update-database استفاده کنیم . بدون استفاده از این دستورات و package manager console و بصورت مستقیم در خود پروژه پراپرتی را تعریف و migration را اضافه و بانک اطلاعاتی آپدیت کنیم ؟
3 پاسخ
یکم جستجو کردم . انگار میشه یک کارایی کرد . مثلاً با migrator و بعد استفاده از متد update ش که کار همون update-database را انجام میده . برای seed هم میشه ازش استفاده کرد . فقط نتونستم راهی برای add-migration پیدا کنم که اونم فکر کنم با scaffold بشه .
واقعیت هم یکم با محیط کنسول مشکل دارم و فکر میکنم اون آزادی عمل و ندارم .
در ضمن یک برنامه نوشتم که الان زیر باره و نمیتونم بانک اطلاعاتیش را دراپ کنم . میخام از مایگریا استفاده کنم و تجربه هم ندارم . نمیدونم الان تو محیط کد از دستورات کنسول استفاده کنم بعد یک اینستال ازش بسازم و ببرم روی سیستم دیگه نصب کنم چه اتفاقی میوفته ؟ واقعا به همین راحتی migrate میشه ؟
راهی که نداره. این ساده ترین راهی هست که موجوده . اولش که شبیه همین کاریه که شما می خواید بکنید ( به هر حال entity ها باید تو پروژه بروز بشن)
حالا مشکلتون با package manager console چیه ؟ چرا دنبال یه راه دیگه هستید ؟
اول که خب شما قرار نیست تعداد بالایی کامند رو بنویسید ، یه Add و update هرباره است دیگه. یا ممکنه نهایتا بخواید roleback هم داشته باشید.
اما در مورد سرور production قضیه بسیار جالب تره. شما دو راه دارید:
1- خودتون script رو از محیط develope بگیرید و توی دیتابیس prodution اجراش کنید.
2- به صورت اتوماتیک خود برنامه تون هر بار که اجرای اولیه میشه ، دیتابیسش رو آپدیت هم بکنه که خب یه جورایی بهتره.
هر دو روش در اولین پاسخ اینجا بحث شده.