मैं लिक्विबेस का मूल्यांकन कर रहा हूं और यह पता लगाने की कोशिश कर रहा हूं कि SQL स्क्रिप्ट का उपयोग करने पर डेटा माइग्रेशन के लिए इसका कोई लाभ है या नहीं। मान लीजिए मैं निम्नलिखित कर रहा हूँ:डेटाबेस माइग्रेशन के लिए Liquibase का उपयोग करने के लिए कोई लाभ?
मेरे संस्करण 0 डेटाबेस स्कीमा इस तरह दिखता है:
CREATE TABLE `Person` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`firstName` varchar(255) NOT NULL,
`lastName` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
);
डेटाबेस निम्नलिखित डालने के प्रतिनिधित्व वाले कुछ मौजूद डेटा के साथ से भर जाता है:
INSERT INTO `Person` (`id`, `firstName`, `lastName`) VALUES (1, 'foo', 'bar');
मैं फिर उस व्यक्ति तालिका में एक और कॉलम जोड़ने का निर्णय लें जो शून्य नहीं है लेकिन मैं कोई मौजूदा डेटा खोना नहीं चाहता हूं। संस्करण 0 से संस्करण 1 की माइग्रेशन स्क्रिप्ट इस तरह दिखेगी:
ALTER TABLE `Person` ADD COLUMN `dob` date DEFAULT NULL;
UPDATE `Person` set `dob` = '1970-01-01';
ALTER TABLE `Person` MODIFY COLUMN `dob` NOT NULL;
क्या लिक्विबेस इस उपयोग के मामले को आसान बना सकता है?
अपने प्रश्न/उत्तर, कि मदद करता है को जोड़ने के लिए धन्यवाद। –
बेशक आप "एसक्यूएल" में डिफ़ॉल्ट के साथ एक शून्य कॉलम जोड़ सकते हैं। आप किस डीबीएमएस का जिक्र कर रहे हैं जो इसका समर्थन नहीं करता है? –
@a_horse_with_no_name - क्षमा करें, स्पष्ट होने का मेरा मतलब है: कोई एकल SQL कमांड नहीं है जो एक शून्य-शून्य कॉलम बना सकता है जो मौजूदा पंक्तियों के लिए मान निर्दिष्ट करता है लेकिन जो डिफ़ॉल्ट कॉलम मान सेट नहीं कर रहा है। मुझे गलत साबित होने में प्रसन्नता हो रही है लेकिन मुझे लगता है कि इसे प्राप्त करने के लिए कमांड के सभी संयोजन कम से कम 3 लाइन लंबे हैं। – David