ورود

View Full Version : چگونگی اعمال تغییرات روی فایلها و دیتابیس پروژه MVC برروی سرور



ayub_coder
چهارشنبه 10 شهریور 1395, 08:44 صبح
با سلام
من قبلا PHP کار میکردم و الان یه پروژه ای دارم که ASP.Net MVC و دیتابیس اون هم SQLServer هست که روی هاست اشتراکی سواره. این پروژه داره دائما آپدیت میشه و کدها و قالب اون و طبیعتا دیتابیسش هم دائما تغییر میکنه.
حالا نکته ای که هست اینه که شما چطوری این تغییرات رو روی کد و فایلهای قالب و دیتابیس اعمال میکنید؟

من الان مجبورم هربار پروژه رو کامپایل کنم و فایل ها رو دوباره آپلود کنم . دیتابیس رو هم هر بار از روی لوکال بکاپ میگیرم و روی سرور restore میکنم. تا الان که هنوز وب سایت به مرحله اجرا نرسیده مشکلی ندارم. ولی وقتی وب سایت منتشر شد و اطلاعات کاربران توش قرار داده شد دیگه نمیشه بکاپ رو restore کرد. با Managment Studio هم که متصل میشم اجازه تغییرات نمیده و فقط میتونم جداول و فیلدها رو ببینم.

مسلما یه راهکار بهتر واسه اعمال تغییران روی هاست وجود داره.

ممنون میشم راهنمایی کنید

hakim22
چهارشنبه 10 شهریور 1395, 11:14 صبح
بعد از تغییرات در کدها و Build کردن پروژه فقط کافیه فایلهایی که تغییر کرده اند به سرور کپی کنید. میتوانید این کار را از طریق FTP انجام بدید. اگر از WebSitePanel استفاده می کنید می توانید فایلهایی که تغییر کرده اند را به صورت Zipسرور آپلود کنید و با استفاده از امکان Unzip در FileManager آن را به سرور قرار دهید.

البته می توانید با استفاده از Publish در ویژوال استودیو از امکان FTP مستقیما استفاده کنید. در این روش ویژوال استودیو با استفاده از FTP به سرور وصل میشه و فایلهایی که تغییر کرده اند در سرور قرار میده.

برای آپلود فایلهای کد به سرور بهترین روش استفاده از Web Deploy هست که البته باید سرور از این امکان پشتیبانی کنه و در بسیاری از سرورهای اشتراکی این امکان وجود نداره.

برای تغییرات دیتابیس شما می توانید از Migration ها استفاده کنید. دو روش وجود دارد.

اول اینکه تغییرات را با استفاده از Add-Migration به صورت کد در آورید و سپس با اعمال دستور Update-Database و تنظیم کانکشن استرینگ پروژه روی دیتابیس اصلی سرور تغییرات را اعمال کنید.
دوم اینکه تغییرات را با Add-Migration به صورت کد در آورید ولی خروجی script از آن بگیرید. که اسکریپت sql است و می توانید این کد را بعدا در sql سرور اعمال کنید. این تغییرات در چند ثانیه در سرور قرار مگیره.

وقتی از migration استفاده می کنید دیتابیس جاری حذف نمیشه و فقط تغییرات اعمال میشه. همیشه قبل از اعمال روی سرور یک کپی تهیه کنید. ضمن اینکه همیشه روی سیستم لوکال تغییرات را تست کنید.

ayub_coder
چهارشنبه 10 شهریور 1395, 11:34 صبح
امکان Migration فقط برای EF وجود داره یا برای ADO.Net هم میشه استفاده کرد؟ چون بنده از Entity Framework استفاده نکردم و از ADO.Net با دیتابیس ارتباط برقرار میکنم.