Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

Mysql स्कीमा को ट्रैक करने के लिए Git का उपयोग करना - कुछ प्रश्न

मान लें कि आपके पास पहले से ही एक गिट रेपो है, शेल स्क्रिप्ट में या जो कुछ भी करें:

#!/bin/bash -e
# -e means exit if any command fails
DBHOST=dbhost.yourdomain.com
DBUSER=dbuser
DBPASS=dbpass # do this in a more secure fashion
DBNAME=dbname
GITREPO=/path/to/git/repo
cd $GITREPO
mysqldump -h $DBHOST -u $DBUSER -p$DBPASS -d $DBNAME > $GITREPO/schema.sql # the -d flag means "no data"
git add schema.sql
git commit -m "$DBNAME schema version $(`date`)"
git push # assuming you have a remote to push to

फिर इस स्क्रिप्ट को दैनिक आधार पर क्रॉन जॉब से शुरू करें या आपके पास क्या है।

संपादित करें:एक स्क्रिप्ट को $gitdir/hooks/pre . में रखकर -commit (नाम महत्वपूर्ण है), स्क्रिप्ट को हर कमिट से पहले निष्पादित किया जाएगा। इस तरह प्रत्येक प्रतिबद्धता के लिए डीबी स्कीमा की स्थिति पर कब्जा कर लिया जाता है, जो समझ में आता है। यदि आप हर बार प्रतिबद्ध होने पर इस sql स्क्रिप्ट को स्वचालित रूप से चलाते हैं, तो आप अपने डेटाबेस को उड़ा देंगे, जिसका कोई मतलब नहीं है।

#!/bin/sh

यह पंक्ति निर्दिष्ट करती है कि यह एक शेल स्क्रिप्ट है।

mysqldump -u DBUSER -pDBPASSWORD  DATABASE --no-data=true> SQLVersionControl/vc.sql

यह ऊपर मेरे उत्तर जैसा ही है; केवल डेटाबेस से डीडीएल लेना और उसे एक फाइल में संग्रहित करना।

git add SQLVersionControl/vc.sql

यह SQL फ़ाइल को आपके रिपॉजिटरी में की गई प्रत्येक प्रतिबद्धता में जोड़ता है।

exit 0

यह सफलता के साथ स्क्रिप्ट से बाहर निकलता है। यह संभवतः खतरनाक है। अगर mysqldump या git add विफल रहता है, आप कुछ ऐसा उड़ा सकते हैं जिसे आप रखना चाहते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL चयन के रूप में तालिका बनाएँ

  2. MySQL से केवल विशिष्ट तालिकाओं को कैसे डंप करें?

  3. बिना किसी परेशानी के सेल्फ-होस्टेड वर्डप्रेस और लाइव साइट के इंस्टॉल किए गए प्लगइन्स को नवीनतम उपलब्ध संस्करणों में कैसे अपग्रेड करें?

  4. पायथन माइस्क्ल, सिंक से बाहर आदेश; आप अभी यह आदेश नहीं चला सकते हैं

  5. InnoDB प्रदर्शन में बदलाव