সত্তা ফ্রেমওয়ার্ক - ওভার স্টার্ট - সমস্ত অভিবাসন পূর্বাবস্থায় ফিরুন / রোলব্যাক করুন


168

কিছু কারণে আমার মাইগ্রেশনগুলি ঝাঁপিয়ে পড়েছে / দুর্নীতিগ্রস্থ হয়েছে / যাই হোক না কেন। আমি সেই পর্যায়ে এসেছি যেখানে আমি কেবল আবার শুরু করতে চাই, তাই সমস্ত অভিবাসনকে পুরোপুরি পূর্বাবস্থায় ফেলার, ইতিহাস মুছে ফেলার এবং মাইগ্রেশন কোডটি মুছার কোনও উপায় আছে, তাই আমি আবার স্কোয়ার একটিতে ফিরে এসেছি?

যেমন) PM> Disable-MigrationsবাRollback-Migrations

আমি কোনও আসল মাইগ্রেশন ধাপে "আপডেট" করতে চাই না (অর্থাত্ InitialSchemaটার্গেটের মতো কিছু ) কারণ আমি এটি আর খুঁজে পাচ্ছি না।

উত্তর:


358

আপনি ব্যবহার করে যে কোনও মাইগ্রেশনে রোলব্যাক করতে পারেন:

Update-Database -TargetMigration:"MigrationName"

আপনি যদি সমস্ত মাইগ্রেশন রোলব্যাক করতে চান তবে আপনি ব্যবহার করতে পারেন:

Update-Database -TargetMigration:0

বা সমমানের:

Update-Database -TargetMigration:$InitialDatabase 

কিছু ক্ষেত্রে আপনি ডাটাবেস এবং সমস্ত মাইগ্রেশন ক্লাসও মুছতে পারেন।


6
যথারীতি, আপনি সেরা
ড্রজাউস

2
আমি বুঝতে পারি না, ওপি বিশেষত বলেছে যে "আমি কোনও মূল মাইগ্রেশন ধাপে" আপডেট করতে চাই না "(অর্থাত্ ইনিশিয়াল স্কেমার টার্গেটের মতো কিছু) কারণ আমি এটি আর খুঁজে পাচ্ছি না। এই উত্তরটি সে যা চায় তা কী করে? যা হওয়ার আমি প্রত্যাশা করব তা হ'ল আমি এমন একটি রাজ্যে থাকি যেখানে আমাকে enable-migrationsআবার যেতে হবে। এগুলি সুস্পষ্টভাবে সহায়ক, তবে ওপি যা যা বলে তা তারা কি সম্পাদন করে? (দয়া করে "ভাল, তিনি উত্তরটি মেনে নিয়ে উত্তর দিবেন না।" আমি এটি বোঝার চেষ্টা করছি, স্মার্টাস না হয়ে)।
মাইকেল ব্ল্যাকবার্ন

enable-migrations@ মিশেলব্ল্যাকবার্ন: আপনি যদি আবার চালাতে চান এবং আপনি স্ক্র্যাচ থেকে ডাটাবেস বিকাশ করছেন তবে আপনাকে কেবল শেষ বাক্যটি অনুসরণ করতে হবে: ডাটাবেস এবং সমস্ত মাইগ্রেশন সম্পর্কিত কোড মুছুন। আপনি যদি বিদ্যমান ডাটাবেস সহ মাইগ্রেশন ব্যবহার শুরু করেন তবে আপনাকে প্রথমে দ্বিতীয় বা তৃতীয় কমান্ড ব্যবহার করে সমস্ত মাইগ্রেশন ফিরিয়ে দিতে হবে, তারপরে MigrationHistoryসারণী এবং সমস্ত মাইগ্রেশন সম্পর্কিত কোড মুছবেন । এটি আপনাকে প্রারম্ভিক অবস্থানে নিয়ে যাওয়া উচিত। আপনি ব্যাকআপ (মাইগ্রেশন ব্যবহারের আগে) থেকে ডাটাবেস শুরু করতে এবং মাইগ্রেশন সম্পর্কিত সমস্ত কোড মুছতে পারেন।
লাডিস্লাভ Mrnka

4
@ মিশেল ব্ল্যাকবার্ন: আমার অর্থ হ'ল আমি যে সমস্ত সমাধান দেখেছি সেগুলি আপনার প্রথম নামান্তরিত মাইগ্রেশনটিতে ফিরে আপডেট করতে বলেছিলাম , তবে আমার সমস্যাটি ছিল যে আপডেট করার জন্য কোনও প্রাথমিক পরিষ্কার স্থানান্তর ছিল না - আমি শুধু পদ্ধতিটি নির্বিশেষে সমস্ত স্থানান্তর থেকে মুক্তি পেতে চেয়েছিলেন। সুতরাং এই উত্তরটি আমার উদ্বেগকে সম্বোধন করেছে-TargetMigration:0
ড্রাগজাস


8

স্পষ্টরূপে, লোকালডিবি ব্যবহার করার সময়, আপনি যখন স্ক্র্যাচ থেকে শুরু করতে চান কেবল ডাটাবেস এক্সপ্লোরারের মাধ্যমে ডাটাবেসটি মুছুন এবং তারপরে enable-migrations -forceপ্যাকেজ ম্যানেজার কনসোলটি টাইপ করুন । অ্যাপ_ডাটা ফোল্ডারের মাধ্যমে ডাটাবেসটি মুছবেন না বা আপনার নিম্নলিখিত সমস্যা থাকবে


2
এটি করার সময় সতর্কতা অবলম্বন করুন এটি কোনও সতর্কতা ছাড়াই আপনার অভিবাসনগুলি - কনফিগারেশন.সিগুলি ওভাররাইট করে দেবে!
cgatian

সতর্কতার জন্য ধন্যবাদ, আমি ধরণের পরে কিছুক্ষণ পরে কোডটি প্রথমভাবে ফেলে দিয়েছি, আপনার সমস্ত কোড একবারে, জায়গা করে দেওয়া, আপনার ডেটাবেজের জন্য সোর্স কন্ট্রোল ভার্শনিং রয়েছে তবে আমি অন্য কোনও বড় সুবিধা দেখতে পাইনি nice এবং প্রথমে ডাটাবেসে ফিরে গেছে। সমস্ত ডেল্টাস ট্র্যাক করতে আমি রেড গেট এসকিএল তুলনা ব্যবহার করি।
ব্রায়ান ওগডেন


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.