EF 5 কোড প্রথম স্থানান্তর থেকে সম্পূর্ণ এসকিউএল স্ক্রিপ্ট তৈরি করুন


144

প্রারম্ভিক (খালি) অবস্থা থেকে সর্বশেষ স্থানান্তরণে পূর্ণ ডাটাবেস স্ক্রিপ্ট তৈরি করতে আমি কীভাবে সত্ত্বা ফ্রেমওয়ার্ক 5 কোড প্রথম মাইগ্রেশন ব্যবহার করব?

এমএসডিএন ব্লগের ব্লগ পোস্টটি এটি করার পরামর্শ দেয় তবে মনে হয় এটি একটি খালি স্ক্রিপ্ট তৈরি করেছে:

Update-Database -Script -SourceMigration: $InitialDatabase

উত্তর:


285

এপিআই পরিবর্তিত হয়েছে বলে মনে হচ্ছে (বা কমপক্ষে, এটি আমার পক্ষে কার্যকর নয়)।

প্যাকেজ ম্যানেজার কনসোলে নিম্নলিখিত চালানো প্রত্যাশার মতো কাজ করে:

Update-Database -Script -SourceMigration:0

13
আমি বুঝতে পারি এটি সঠিক উত্তর, তবে প্যারামিটারটি সাধারণত একটি স্ট্রিং থাকে তবে আপনি পৃথিবীতে কীভাবে 0 টি আবিষ্কার করতে পেরেছেন ?!
ডেভ আর

26
এটিকে কাজে লাগানোর জন্য আমি যা ভাবতে পারি তার চেষ্টা করার পরে কেবল বিচার ও ত্রুটি :)
ম্যাট উইলসন

1
এটি কি ডাটাবেসের সঠিক অনুলিপি তৈরি করে? টেবিলের সামগ্রীগুলি সহ?
মাল্টিটুট

2
@ মাল্টিটুট: না এটি কেবল কাঠামোটিই করবে।
মার্টিন ক্লার্ক

6
যদি কেউ কিভাবে EfCore এই কাজটি এবং এখানে আমার মত শেষ পর্যন্ত করতে খুঁজছি হয়, কমান্ড: dotnet ef migrations script। ডকুমেন্টেশনের বিষয়ে আরও: ডকস.মাইক্রোসফট.ইন- ইউএস
রাফায়েল মাইকেলি

13

সত্তা ফ্রেমওয়ার্ক কোর ব্যবহার করে এমন কারও জন্য এখানে শেষ। এইভাবে আপনি এটি করেন।

# Powershell / Package manager console
Script-Migration

# Cli 
dotnet ef migrations script

নির্দিষ্ট সংস্করণে ডাটাবেস আপডেট করতে আপডেট স্ক্রিপ্ট তৈরি করতে আপনি -Fromএবং -Toপ্যারামিটার ব্যবহার করতে পারেন ।

Script-Migration -From 20190101011200_Initial-Migration -To 20190101021200_Migration-2

https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/#generate-sql-scripts

এই কমান্ডের বিভিন্ন বিকল্প রয়েছে।

থেকে মাইগ্রেশন গত মাইগ্রেশন স্ক্রিপ্ট চালানোর আগে ডাটাবেসের সাথে প্রয়োগ করতে হবে। যদি কোনও মাইগ্রেশন প্রয়োগ না করা থাকে তবে নির্দিষ্ট করুন 0(এটি ডিফল্ট)।

থেকে মাইগ্রেশন গত মাইগ্রেশন স্ক্রিপ্ট চলমান পরে ডাটাবেসের প্রয়োগ করা হবে। এটি আপনার প্রকল্পের শেষ মাইগ্রেশনে ডিফল্ট।

একটি idempotent স্ক্রিপ্ট ঐচ্ছিকরূপে উত্পন্ন করা যেতে পারে। এই স্ক্রিপ্টটি কেবল মাইগ্রেশন প্রয়োগ করে যদি সেগুলি ইতিমধ্যে ডাটাবেসে প্রয়োগ না করা হয় applied ডাটাবেসে সর্বশেষ মাইগ্রেশনটি কী প্রয়োগ হয়েছিল বা আপনি যদি একাধিক ডাটাবেসে স্থাপন করছেন যা প্রত্যেকে আলাদা আলাদা মাইগ্রেশনে থাকতে পারে তা যদি আপনি সঠিকভাবে জানেন না তবে এটি কার্যকর।


এটি একটি বিষয় কাজ করে। একবার আপনি কলামের নাম পরিবর্তন শুরু করলে এটি ত্রুটি ছুঁড়তে শুরু করবে, ড্যাকপ্যাক তৈরি করা আরও ভাল সমাধান। বিশেষত যখন আপনি সিআই / সিডিতে পাইপলাইনগুলি ব্যবহার শুরু করেন
নিক টার্নার

8

ম্যাট উইলসনের উত্তরে যুক্ত করার জন্য আমার কাছে কোড-ফার্স্ট সত্তা ক্লাসগুলির একটি গুচ্ছ ছিল তবে আমি ব্যাকআপ গ্রহণ না করায় কোনও ডাটাবেস নেই। সুতরাং আমি আমার সত্তা ফ্রেমওয়ার্ক প্রকল্পে নিম্নলিখিতগুলি করেছি:

ভিজ্যুয়াল স্টুডিওতে প্যাকেজ ম্যানেজার কনসোল খুলুন এবং নিম্নলিখিত টাইপ করুন:

Enable-Migrations

Add-Migration

আপনার স্থানান্তরকে 'প্রাথমিক' এর মতো একটি নাম দিন এবং তারপরে স্থানান্তর তৈরি করুন। শেষ পর্যন্ত নিম্নলিখিত টাইপ করুন:

Update-Database

Update-Database -Script -SourceMigration:0

চূড়ান্ত কমান্ডটি আপনার সত্তা শ্রেণিগুলি থেকে আপনার ডাটাবেস টেবিলগুলি তৈরি করবে (আপনার সত্তা শ্রেণিগুলি সুগঠিত হয়ে থাকে)।

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