मुझे अंततः इसे ठीक करना पड़ा।
इस मुद्दे को ठीक करने के लिए मुझे दो समाधान मिले हैं।
- सबसे पहले, इकाई फ्रेमवर्क माइग्रेशन का समर्थन करने वाले सभी डेटाबेस के लिए एक सामान्य समाधान है :
- एक .NET कोर का उपयोग करना टास्क, हमें डॉटनेट एफई टूल इंस्टॉल करना होगा :कार्य इस तरह दिखेगा:
और यह YAML होगा (यदि आप इसे रिलीज़ पाइपलाइन से बाहर उपयोग करना चाहते हैं):
- task: [email protected]
displayName: 'dotnet custom'
inputs:
command: custom
custom: tool
arguments: 'install --global dotnet-ef --version 3.1.4 --ignore-failed-sources'
- और एक बार हमारे पास आवश्यक उपकरण स्थापित हो जाने के बाद, सीएमडी . के साथ या एक बैश कार्य, हमें इस तरह एक स्क्रिप्ट निष्पादित करनी होगी:
dotnet ef database update -c <DBCONTEXT> -p <PROJECT> -s <STARTUP_PROJECT> -v --no-build
आपको बस झंडा जोड़ना है -c यदि आपके प्रोजेक्ट में एक से अधिक संदर्भ हैं (कभी-कभी अन्य डीबीकॉन्टेक्स्ट कुछ नगेट पैकेज से आ सकते हैं)।
सूचना मैंने ध्वज जोड़ा --no-build चूंकि मैंने पहले ही प्रोजेक्ट को बिल्ड पाइपलाइन में अच्छी प्रथाओं का पालन करने के लिए बनाया है।
- दूसरा विकल्प (और जिसे मैंने अंत में इस्तेमाल किया), वह है यह कार्य यह मूल रूप से वही प्रक्रिया करता है, इस अंतर के साथ कि यह आपके पहले से संकलित .dll का उपयोग करके करता है फ़ाइलें, इसलिए आपको माइग्रेशन कार्य करने के लिए संपूर्ण प्रोजेक्ट की प्रतिलिपि बनाने की आवश्यकता नहीं होगी। कार्य का सेटअप, हालांकि आपको कई इनपुट भरने होते हैं, यह बहुत सीधा है, और इसे अन्य डेटाबेस के साथ भी काम करना चाहिए।
हालांकि, अगर मुझे एसक्यूएल सर्वर का उपयोग करना पड़े तो या MySQL मैं एक माइग्रेशन स्क्रिप्ट का उपयोग करूंगा, क्योंकि यह प्रक्रिया बहुत आसान है (आपको बस एक .sql जेनरेट करने की आवश्यकता है। स्क्रिप्ट और फिर यह माइग्रेशन को परिनियोजित करने के लिए आवश्यक एकमात्र फ़ाइल है)।