इन दिनों, विकास दल एक संस्करण नियंत्रण प्रणाली चुनने से नई परियोजनाएं शुरू करते हैं। विकास दल के प्रयासों के समन्वय में स्रोत नियंत्रण प्रणालियों के कई लाभ हैं। यह कोड में सभी परिवर्तनों का एक पूर्ण ऑडिट ट्रेल सुनिश्चित करता है और टीम को किसी विशिष्ट संशोधन या निर्माण को पुन:पेश करने की अनुमति देता है। प्रोग्रामिंग कोड के साथ, डेटाबेस को स्रोत नियंत्रण में रखा जा सकता है और रखा जाना चाहिए। इस लेख में, हम देखेंगे कि रिमोट रिपोजिटरी में मौजूद डेटाबेस को कैसे तैनात किया जाए।
मान लें कि आपके पास एक दूरस्थ रिपॉजिटरी है जिसमें डेटाबेस स्क्रिप्ट फ़ोल्डर है। फ़ोल्डर में डेटाबेस ऑब्जेक्ट के लिए DDL स्क्रिप्ट हैं। कार्य स्थानीय पीसी पर डेटाबेस को तैनात करना है। प्रदर्शन के उद्देश्य के लिए, मैं विजुअल एसवीएन और टोर्टोइज एसवीएन रिपोजिटरी ब्राउज़र का उपयोग करूंगा। निम्न चित्र डेमो रिपॉजिटरी को प्रदर्शित करता है जो डेटाबेस स्क्रिप्ट फ़ोल्डर को होस्ट करता है।
पहला कदम स्थानीय कामकाजी प्रति बनाना है। ऐसा करने के लिए, आपको स्थानीय हार्ड ड्राइव पर एक फ़ोल्डर बनाना होगा और एसवीएन चेकआउट ऑपरेशन करना होगा।
एक बार ऑपरेशन पूरा हो जाने के बाद, सभी SQL फ़ाइलें स्थानीय फ़ोल्डर में संग्रहीत की जाएंगी। अब, आप डेटाबेस को तैनात कर सकते हैं। जाहिर है, सभी SQL फ़ाइलों को एक-एक करके मैन्युअल रूप से निष्पादित करना एक अच्छा अभ्यास नहीं है। परिनियोजन को स्वचालित करने के लिए आप एक बैच फ़ाइल बना सकते हैं।
बैच फ़ाइल बनाना
आपको एक बैच फ़ाइल बनाने की आवश्यकता है। इस डेमो में, मैं निम्नलिखित सामग्री के साथ sales_demo_build.bat फ़ाइल बनाऊंगा:
sqlcmd -S "PC_NAME\SQLEXPRESS" -U "sa" -P "sa" -i "D:\sales_demo_build\sales_demo_build.sql" PAUSE
मैं बैच फ़ाइल में SQLCMD उपयोगिता का उपयोग करता हूं। SQLCMD तर्कों के बारे में अधिक जानकारी प्राप्त करने के लिए, निम्न आलेख पढ़ें:sqlcmd उपयोगिता।
SQLCMD की मदद से हम sales_demo_build.sql फ़ाइल को निष्पादित कर सकते हैं। यह सभी SQL फ़ाइलों को कार्यशील फ़ोल्डर से ले जाएगा और डेटाबेस का निर्माण करेगा। Sales_demo_build.sql फ़ाइल में निम्न कोड है:
SET NOCOUNT ON GO PRINT 'Creating sales_demo1 database' USE [master] GO DECLARE @db_name NVARCHAR(255); SET @db_name = N'sales_demo1'; IF EXISTS (SELECT 1 FROM sys.databases d WHERE d.name = @db_name) BEGIN EXEC (N'ALTER DATABASE '[email protected]_name+N' SET SINGLE_USER WITH ROLLBACK IMMEDIATE'); EXEC (N'DROP DATABASE '[email protected]_name); END; EXEC (N'CREATE DATABASE '[email protected]_name); GO USE sales_demo1 GO :On Error exit :r "D:\sales_demo1\Tables\dbo.Customers.sql" :r "D:\sales_demo1\Tables\dbo.OrderLines.sql" :r "D:\sales_demo1\Tables\dbo.Orders.sql" :r "D:\sales_demo1\Tables\dbo.Products.sql" :r "D:\sales_demo1\Tables\Constraints\Foreign Keys\dbo.OrderLines.FK.sql" :r "D:\sales_demo1\Tables\Constraints\Foreign Keys\dbo.Orders.FK.sql" PRINT 'Creation is Completed' GO
स्क्रिप्ट में निष्पादित की जाने वाली SQL फ़ाइलों की एक सूची है।
:r एक SQLCMD कमांड है जो अतिरिक्त Transact-SQL स्टेटमेंट और sqlcmd कमांड को स्टेटमेंट कैश में निर्दिष्ट फ़ाइल से पार्स करता है।
अब, हम बैच फ़ाइल चला सकते हैं:
बस इतना ही! अब, हम SSMS ऑब्जेक्ट एक्सप्लोरर को रीफ्रेश कर सकते हैं और डेटाबेस के साथ काम करना शुरू कर सकते हैं:
जैसा कि आप देख सकते हैं, यह स्रोत नियंत्रण में संग्रहीत डेटाबेस को परिनियोजित करने का एक सरल तरीका है। हालाँकि, यह इस कार्य को हल करने का एकमात्र तरीका नहीं है। हम अगले लेखों में वैकल्पिक तरीकों के बारे में बात करेंगे।
उपयोगी टूल:
dbForge स्रोत नियंत्रण - स्रोत नियंत्रण में SQL सर्वर डेटाबेस परिवर्तनों के प्रबंधन के लिए शक्तिशाली SSMS ऐड-इन।