# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > ASP.NET Core >  مشکل با Migration اتوماتیک در ef core

## jaykob

سلام 

من یک پروژه با .net core 2.2 پیاده سازی کردم و add migration کردم و همه چی مرتب هست ولی زمانی Publish می کنم می برم روی سرور به صورت اتوماتیک جداول ساخته نمی شه مثل ef 6 که automatic migration رو true می کردیم هم وجود نداره امکان داره راهنمایی کنید 

با تشکر

----------


## anubis_ir

اينجا چيزي به نام automatic migration وجود خارجي نداره. بعد از دستور add، دستور update هم براي اعمال دستي اين تغييرات هست كه خودت بايد اجراش كني يا اجراي متد context.Database.Migrate در startup هم همين كار رو انجام مي‌ده.

----------


## jaykob

> اينجا چيزي به نام automatic migration وجود خارجي نداره. بعد از دستور add، دستور update هم براي اعمال دستي اين تغييرات هست كه خودت بايد اجراش كني يا اجراي متد context.Database.Migrate در startup هم همين كار رو انجام مي‌ده.


سلام 

تشکر از پاسخ شما . من روی Local مشکلی ندارم بحث من سر اعمال تغییرات بعد از آپلود روی هاست هست . 
context.Database.Migrate رو کجای startup باید قرار بدم ؟ کار دیگه ای نیاز نیست انجام بدم و فقط همین یک خط کد هست ؟

تشکر از شما

----------


## jaykob

نکته دیگه ای هم که وجود داره من توی class library فایل startup ندارم این رو باید چکار بکنم ؟

ممنون

----------


## hakim22

بحث Automatic Migration از اول ایراد داشت و باعث دردسر های زیادی میشد. به همین دلیل در EF Core پیاده سازی نشده. 
اگر از Web Deploy استفاده کنید و Conncetion String رو در تنظیماتش قرار بدید هنگام پابلیش روی سایت خودکار دیتابیس رو هم آپدیت میکنه. در غیر این صورت بهترین راه اینه که یا دیتابیس رو با استفاده از script آپدیت کنید یا اینکه در خط فرمان دستور Update-Database رو اجرا کنید. اگر کانکشن دیتابیس اصلی در پروژه باشه آپدیت انجام میشه و بعد بلافاصله سایت رو آپدیت کنید. 

خوبیه Web Deploy اینه که وقتی در حال آپدیت سایت هست سایت رو به حالت Under Construction میبره. ولی اگر دستی انجام میدید باید خودتون فایل offline رو ست کنید. 

در مورد استارت آپ همیشه پروژه ای که کار تست رو انجام میده استارت آپ هست. همیشه می توانید مسیر کانکشن رو مستقیم در سازنده ی کلاس قرار بدید.

----------


## saeed27saeed

> بحث Automatic Migration از اول ایراد داشت و باعث دردسر های زیادی میشد. به همین دلیل در EF Core پیاده سازی نشده. 
> اگر از Web Deploy استفاده کنید و Conncetion String رو در تنظیماتش قرار بدید هنگام پابلیش روی سایت خودکار دیتابیس رو هم آپدیت میکنه. در غیر این صورت بهترین راه اینه که یا دیتابیس رو با استفاده از script آپدیت کنید یا اینکه در خط فرمان دستور Update-Database رو اجرا کنید. اگر کانکشن دیتابیس اصلی در پروژه باشه آپدیت انجام میشه و بعد بلافاصله سایت رو آپدیت کنید. 
> 
> خوبیه Web Deploy اینه که وقتی در حال آپدیت سایت هست سایت رو به حالت Under Construction میبره. ولی اگر دستی انجام میدید باید خودتون فایل offline رو ست کنید. 
> 
> در مورد استارت آپ همیشه پروژه ای که کار تست رو انجام میده استارت آپ هست. همیشه می توانید مسیر کانکشن رو مستقیم در سازنده ی کلاس قرار بدید.


جوابتون عالی و کامل و خیلی اموزنده بود. ممنون

----------

