نمایش نتایج 1 تا 6 از 6

نام تاپیک: مایگریشن و AutomaticMigrationDataLossAllowed

  1. #1
    کاربر دائمی
    تاریخ عضویت
    آبان 1387
    محل زندگی
    Iran
    پست
    1,338

    مایگریشن و AutomaticMigrationDataLossAllowed

    سلام دوستان

    این طور که من متوجه شدم هنگام استفاده از مایگریشن این کد رو باید به سازنده کلاس configuration موجود در فولدر migration اضافه کنیم
    AutomaticMigrationDataLossAllowed = true;

    تا تغییراتی که بعدها در مدل می دیم به دیتابیس اعمال بشه

    ترجمه تحت اللفظی این کد این میشه که ممکنه داده هایی از دست برن

    حالا سوال من اینه فرض کنید یک وب سایت به صورت کد فرست ایجاد کردیم و یه سری داده مهم هم زده شده در دیتابیس و پس از مدتی به خواست کارفرما نیاز میشه که یه فیلد به دیتابیس اضافه بشه.

    حالا سوال من اینه که آیا این ریسک نیست که به خاطر افزودن یه فیلد امکان از دست رفتن داده های مهم ما وجود داشته باشه؟


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

  2. #2
    کاربر دائمی آواتار ali_md110
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    شیراز
    پست
    1,181

    نقل قول: مایگریشن و AutomaticMigrationDataLossAllowed

    نه خیر داده های شما از دست نخواهد رفت و فیلدهای مورد نظر به جداول شما اضافه خواهند شد
    فقط نال بودن و نبودن فیلدهای جدید رو باید بررسی کنید اگر یک فیلد نال پذیر نباشد مقدار پیش فرض را هم به هنگام Migration به جداول اضافه کنید

  3. #3

    نقل قول: مایگریشن و AutomaticMigrationDataLossAllowed

    دوستمون درست میفرمایند من بارها تو پروژهام فیلد یا جدول کم و زیاد میکنم هیچ مشکلی هم پیش نیومده

  4. #4

    نقل قول: مایگریشن و AutomaticMigrationDataLossAllowed

    عبارت DataLoss به این موضوع اشاره میکنه که هرجا نیاز به حذف داده وجود داشته باشه خودکار انجام میشه .
    مثلا اگر قبلا یک فیلد متنی داشتید که طولش 100 کاراکتر بود و در آپدیتهای بعدی کردید 50 کاراکتر خودش دیتابیس رو تغییر میده و رشته های اضافه رو میبره و از شما هم سوال نمیکنه.

    کلا این گزینه برای پیاده سازی پروژه های واقعی مناسب نیست. اینجور ابزار برای تست و پروژه های سر سری خوبه. در واقع مایکروسافت همیشه سعی میکنه ابزار جانبی بزاره که کمک کنه پروژه بی دردسر بالا بیاد و کسی که اولین روزه داره از ASP استفاده میکنه به خاطر ارورها سرخورده نشه.

    بهتره شما برای هر تغییر در DataBase یک Migration جدا ایجاد کنید .
    همچنین قبل از آپدیت کردن دیتابیس با EF مخصوصا اگر اطلاعات دیتابیس برای شما اهمیت زیادی داره پشتیبان تهیه کنید.

  5. #5
    کاربر دائمی
    تاریخ عضویت
    آبان 1387
    محل زندگی
    Iran
    پست
    1,338

    نقل قول: مایگریشن و AutomaticMigrationDataLossAllowed

    نقل قول نوشته شده توسط hakim22 مشاهده تاپیک

    بهتره شما برای هر تغییر در DataBase یک Migration جدا ایجاد کنید .
    میشه این رو بیشتر توضیح بدید؟
    الان برای فعال کردن مایگریشن من از کد ذیل در package manager console استفاده می کنم
    enable-migrations -contexttypename applicationdbcontext -enableautomaticmigrations


    اگه بخوام برای هر تغییر یک مایگریشن جداگانه ایجاد کنم چه کار باید کرد؟

    ببخشید عبارت separate migration for each change رو گوگل کردم نتیجه ای نگرفتم.

  6. #6

    نقل قول: مایگریشن و AutomaticMigrationDataLossAllowed

    اگر در پروژه فقط یک DbContext دارید نیاز به وارد کردن هیچ پارامتری ندارید . فقط کافیه enable-migrations رو اجرا کنید تا یک فولدر در پروژه ایجاد کنه به نام Migrations که یک فایل تنظیمات هم داره.
    دقت کنید که Package Manager Console روی پروژه ی دارای DbContext ست شده باشه.

    در مرحله ی بعد برای ایجاد میگرشن باید از دستور Add-migration استفاده کنید و یک نام بدید. مثلا Add-migration MyUpdateName

    راهنمای کامل :
    https://msdn.microsoft.com/en-us/lib...v=vs.113).aspx

تاپیک های مشابه

  1. مشکل در مایگریشن
    نوشته شده توسط tux-world در بخش Yii Framework
    پاسخ: 4
    آخرین پست: چهارشنبه 11 دی 1392, 14:50 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •