انتقال اطلاعات Database در MVC
بسم الله الرحمن الرحیم
بسیاری از مواقع شما نیاز دارید اطلاعات درون پایگاه داد خود را به پایگاه داده دیگری انتقال دهید.
در مطلب تبدیل اطلاعات یک SQL Server به نسخه SQL Server پایین تر نحوه انتقال اطلاعات را از یک نسخه جدید SQL Server به نسخه های قدیمی تر توضیح دادیم. در مطلب بالا توضیح دادیم چطور می توانید فقط اطلاعات و داده های درون پایگاه داده را بدون ساختار پایگاه داده (مانند کدهای تولید View,Table و...) انتخاب کنید.
بسم الله الرحمن الرحیم
بسیاری از مواقع شما نیاز دارید اطلاعات درون پایگاه داد خود را به پایگاه داده دیگری انتقال دهید.
در مطلب تبدیل اطلاعات یک SQL Server به نسخه SQL Server پایین تر نحوه انتقال اطلاعات را از یک نسخه جدید SQL Server به نسخه های قدیمی تر توضیح دادیم. در مطلب بالا توضیح دادیم چطور می توانید فقط اطلاعات و داده های درون پایگاه داده را بدون ساختار پایگاه داده (مانند کدهای تولید View,Table و...) انتخاب کنید.
Migration
در پروژه های MVC جدولی با نام MigrationHistory__ ساخته می شود. اگر این Table را باز کنید در آن اطلاعاتی را مشاهده خواهید که برای شما مفهومی ندارد! ساختار این Table به صورت زیر است.
فیلد MigrationId به همراه فیلد ContextKey کلید اصلی این جدول هستند.
به ازای هر تغییر بر روی Database (مانند اجرای دستور Update-database و... که بر روی Database شما تغییر ایجاد می کند) مقدار فیلد MigrationId به همراه فیلد های Model تغییر خواهد کرد. به ازای هر تغییر یک عدد تولید شده که این عدد در فیلد MigrationId ثبت می شود و همچنین جزئیات تغییر صورت گرفته در فیلد Model ثبت می شود.
این تغییرات در فایل Migration ایی که در پروژه شما وجود دارد نیز ثبت می شود و در واقع اطلاعات درون پروژه شما با اطلاعات درون پایگاه داده با یکدیگر Sync هستند.
حال اگر شما اطلاعات درون پایگاه داده قبلی خود را به پایگاه داده جدیدی که ایجاد کرده اید انتقال دهید، برنامه شما در هنگام اجرا خطای زیر را نمایش خواهد داد.
The model backing the 'ContextDB' context has changed since the database was created.
Consider using Code First Migrations to update the database
(http://go.microsoft.com/fwlink/?LinkId=238269).
دلیل بروز این خطا متفاوت بودن نسخه ی Migration درون پروژه شما با پایگاه داده شما است، طبیعتا راه حل ساده این مشکل انتقال اطلاعات جدول Migration به پایگاه داده جدید است.