2012-05-23 19 views
5

जबकि एसक्यूएल सर्वर 2012 SSDT और उन्नयन के लिए डेटाबेस परियोजना परिवर्तित मैं तैनाती स्क्रिप्ट की जरूरत है दोनों एसक्यूएल सर्वर 2008 और 2012एसएसडीटी, क्या मुझे अलग-अलग dacpacs की आवश्यकता है यदि मुझे SQL Server 2008 और 2012 में एक ही डीबी को तैनात करने की आवश्यकता है?

मैं sqlpackage.exe /Action:Publish उपयोग कर रहा हूँ नवीनतम डेटाबेस बिट्स को तैनात करने के लिए काम करने के लिए।

sqlproj प्रोजेक्ट गुणों में मुझे लक्ष्य प्लेटफ़ॉर्म विकल्प 2005/2008/2012 एसक्यूएल सर्वर के साथ ड्रॉपडाउन दिखाई देता है। यदि मैं इस लक्ष्य मंच को बदलता हूं तो क्या यह एक अलग dacpac उत्पन्न करता है? क्या मुझे प्रत्येक एसक्यूएल सर्वर संस्करण के लिए डैकपैक के दो संस्करणों को ले जाने की आवश्यकता है?

या एसक्यूएल सर्वर के किसी भी संस्करण के लिए एक ही dacpac काम करेगा?

उत्तर

4

संक्षिप्त उत्तर हाँ है - विभिन्न SQL सर्वर संस्करणों के लिए अलग-अलग DACPACs। बॉब Beuachemin एक उपयोगी blog post लिखा था DAC Fx3.0 बनाम डीएसी 2.0

6

मुझे पता है कि यह 11 महीने पुराना है, लेकिन जब आप इस परिदृश्य के लिए विशेष रूप से तैनाती के लिए आते हैं तो एक विकल्प है - AllowIncompatiblePlatform।

//Set Deployment Options 
DacDeployOptions dacOptions = new DacDeployOptions(); 
dacOptions.AllowIncompatiblePlatform = true; 

विकल्प सेट करने के बिना मैं sql2012 लिए एक 2008 dac तैनात कर सकते हैं, लेकिन अगर मैं sql2008 के साथ 2012 dac तैनात यह त्रुटि देगा:

Microsoft.Data.Tools.Schema.Sql.Deployment.DeploymentCompatibilityException: 
A project which specifies SQL Server 2012 as the target platform cannot be published to SQL Server 2008. 

विकल्प सेट करने का मतलब मैं यह नहीं मिलता है त्रुटि और पिछले संस्करणों पर तैनात कर सकते हैं (2005 में मुझे विश्वास है)। एनबी आपको VerVerificationErrorsAsWarnings को सही - YMMV विकल्प को सेट करने की भी आवश्यकता हो सकती है।

+2

मैं SQL2008R2 में SQL22RRac को केवल 'AllowIncompatiblePlatform = true;' विकल्प के साथ तैनात करने में सक्षम था। –

2

SqlPackage.exe का उपयोग कर कमांड लाइन से p:AllowIncompatiblePlatform विकल्प का उपयोग करें। एक चेतावनी अभी भी दिखाई देगी लेकिन यह जारी रहेगी। यह SQL सर्वर 2012 dacpac से SQL सेवर 2008 R2 पर जा रहा है।

SqlPackage.exe /Action:Publish 
    /SourceFile:"testdb.dacpac" 
    /TargetDatabaseName:testDb 
    /p:AllowIncompatiblePlatform=true 
    /TargetServerName:"testserver"