यह प्रक्रिया है जिसका उपयोग मैं MySQL डेटाबेस को संस्करणित करने के लिए करता हूं सबवर्सन के तहत है।
SVN में प्रत्येक डेटाबेस आप SVN को जोड़ना चाहते हैं के लिए एक उप-फ़ोल्डर के साथ एक Databases
फ़ोल्डर बना। डेटाबेस
create table db_version (
`id` int auto_increment,
`majorReleaseNumber` int,
`minorReleaseNumber` int,
`pointReleaseNumber` int,
`scriptName` varchar(50),
`dateApplied` datetime,
PRIMARY KEY(`id`)
);
majorReleaseNumber - प्रमुख विज्ञप्ति डेटाबेस के लिए महत्वपूर्ण परिवर्तन कर रहे हैं।
मामूली रिलीज नम्बर - मामूली रिलीज डेटाबेस में संवर्धन होते हैं जिन्हें एक बड़ी रिलीज की आवश्यकता नहीं होती है।
pointReleaseNumber - एक बिंदु रिलीज आमतौर पर एक साधारण बग फिक्स होता है।
स्क्रिप्टनाम - एससीएल स्क्रिप्ट का नाम जो स्कीमा में परिवर्तन करता है।
दिनांक लागू - जब इस डेटाबेस पर स्क्रिप्ट चलाया गया था।
बनाएं आधारभूत स्क्रिप्ट
मैं mysqldump इस्तेमाल किया मौजूदा डेटाबेस के लिए एक स्क्रिप्ट बनाने उत्पन्न करने के लिए। --no-data विकल्प को शामिल करना सुनिश्चित करें। एसवीएन का उपयोग उन स्क्रिप्ट का ट्रैक रखने के लिए किया जाता है जो डेटाबेस में स्कीमा परिवर्तन करते हैं और एप्लिकेशन के किसी विशेष उदाहरण के डेटा के लिए बैकअप टूल के रूप में उपयोग नहीं करना चाहते हैं।
$ mysqldump -h localhost -u root -p db_1 --no-data > db_1.1.0.0.sql
एसक्यूएल स्क्रिप्ट के नाम डेटाबेस का नाम और डेटाबेस के संस्करण स्क्रिप्ट पर लागू होता है शामिल करना चाहिए।
db_1.1.0.0.sql
स्क्रिप्ट के अंत में db_version तालिका के लिए एक डालने के बयान को जोड़ने के लिए सुनिश्चित करें।
डेटाबेस स्कीमा
आप एक प्रमुख, मामूली, या बिंदु रिलीज डेटाबेस के लिए परिवर्तन है जब बदलने, परिवर्तन स्क्रिप्ट परीक्षण किया जाना चाहिए और उसके बाद SVN में डेटाबेस फ़ोल्डर में अपलोड। परिवर्तन स्क्रिप्ट लागू करने से पहले डेटाबेस बैकअप करना एक अच्छा विचार है। परिवर्तन स्क्रिप्ट के अंत में db_version तालिका के लिए एक सम्मिलन कथन होना चाहिए।
'mytqldump' के लिए' --tab' विकल्प का उपयोग करने का एक वैकल्पिक दृष्टिकोण होगा। यह स्कीमा के लिए ' .sql' फ़ाइल बनाता है और डेटा के लिए एक टैब-सीमांकित ' .txt' फ़ाइल बनाता है। स्कीमा को सामान्य रूप से 'mysql' के माध्यम से पुनर्स्थापित किया जाता है, डेटा को 'mysqlimport' के माध्यम से बहाल किया जाता है। http://dev.mysql.com/doc/refman/5.1/en/mysqldump-delimited-text.html –
rinogo