डेटा के बिना MySql निर्यात स्कीमा


490

मैं जावा प्रोग्राम के साथ MySql डेटाबेस का उपयोग कर रहा हूं, अब मैं प्रोग्राम को किसी और को देना चाहता हूं।

इसमें डेटा के बिना MySql डेटाबेस संरचना का निर्यात कैसे करें, बस संरचना?

जवाबों:


960

आप --no-datamysqldump कमांड के साथ विकल्प के साथ कर सकते हैं

mysqldump -u root -p --no-data dbname > schema.sql

11
IMHO, mysqldumpसबसे अच्छा जवाब है। MySQL प्रशासक को छोड़ दिया गया है और MySQL कार्यक्षेत्र अभी भी काफी छोटी है।
अल्वारो गोंजालेज

49
--single-transactionविकल्प का उपयोग करने पर भी विचार करें यदि आप नहीं चाहते हैं या टेबल लॉक नहीं कर सकते हैं।
जिम

47
-d is --no-data for short।
मस्तूल

36
यह भी जोड़ने पर विचार करें - यदि आप डेटाबेस में संग्रहीत कार्यविधियाँ / कार्य हैं, तो इसके बारे में विचार करें
इसके बाद

15
डिफ़ॉल्ट रूप से, इसमें CREATE DATABASEकमांड शामिल नहीं है । शामिल करने के लिए, (शॉर्टहैंड:) के dbnameसाथ बदलें । फिर दूसरे सर्वर पर आयात करने के लिए, उपयोग करें--databases dbname-B dbnamemysql -u root -p < schema.sql
शॉन

88

हां, आप विकल्प के mysqldumpसाथ उपयोग कर सकते हैं --no-data:

mysqldump -u user -h localhost --no-data -p database > database.sql

4
मुझे आश्चर्य है कि दस सेकंड पहले पोस्ट किए जाने और स्वीकृत उत्तर के समान न होने पर अधिक पूर्ण होने के बावजूद यह स्वीकृत उत्तर नहीं है।
user5532169

1
@ zypA13510, जाहिरा तौर पर दस सेकंड 749 upvotes का अंतर हो सकता है।
इमलोवे

17

आप --no-dataविकल्प के साथ एक व्यक्तिगत तालिका भी निकाल सकते हैं

mysqldump -u user -h localhost --no-data -p database tablename > table.sql



4

हालांकि इससे सावधान रहें - कि-डेटा विकल्प में दृश्य परिभाषा शामिल नहीं होगी। तो अगर यो एक दृश्य की तरह निम्नलिखित दृश्य v1 का चयन करें aidके रूप में id, a। टी 1 से created_dateएएस created_date; --no-data ऑप्शन के साथ, व्यू डेफिनिशन बदलकर निम्नलिखित व्यू v1 को चुनकर 1 AS id, 1 AS हो जाएगाcreated_date



2

यदि आप IntelliJ का उपयोग कर रहे हैं, तो आप डेटाबेस दृश्य (दृश्य -> ​​उपकरण विंडो -> डेटाबेस) को सक्षम कर सकते हैं

उस दृश्य के अंदर अपने डेटाबेस से कनेक्ट करें। तब आप डेटाबेस को राइट क्लिक कर सकते हैं और "कॉपी डीडीएल" का चयन कर सकते हैं। अन्य आईडीई एक समान कार्य प्रदान कर सकते हैं।

इंटेलीज डीडीएल


2
मैंने इसे एक कोशिश दी, इसमें कोई ट्रिगर नहीं है (और भगवान जानता है कि और क्या नहीं)
phil294

2

यदि आप सभी डेटाबेसों से और बिना किसी डेटा (केवल डेटाबेस और टेबल संरचनाओं) के साथ सभी तालिकाओं को डंप करना चाहते हैं, तो आप उपयोग कर सकते हैं:

mysqldump -P port -h hostname_or_ip -u username -p --no-data --all-databases > db_backup.sql

यह एक .sql फ़ाइल का उत्पादन करेगा जिसे आप एक नए डेटाबेस को बनाने के लिए mysql सर्वर पर लोड कर सकते हैं। इसके लिए उपयोग के मामले एक उत्पादन वातावरण में कई नहीं हैं, लेकिन मैं ऐसा साप्ताहिक आधार पर सर्वरों को रीसेट करने के लिए करता हूं, जो डेमो वेबसाइटों से जुड़े होते हैं, इसलिए उपयोगकर्ता सप्ताह के दौरान जो कुछ भी करते हैं, रविवार की रात को सब कुछ "नया" वापस आ जाता है: )


1

एक व्यक्तिगत तालिका की निर्माण स्क्रिप्ट प्राप्त करने के लिए:
- सभी तालिका का चयन करें (शिफ्ट कुंजी के साथ)
- बस तालिका नाम पर राइट क्लिक करें और क्लिपबोर्ड पर प्रतिलिपि बनाएँ> स्टेटमेंट बनाएँ पर क्लिक करें।


0

खोल> mysqldump --no-data --routines --events test> डंप-डिसेक्कल


1
StackOverflow में आपका स्वागत है। यदि आप थोड़ी और जानकारी और अड़चनें देते हैं, तो आप इसका एक बेहतरीन जवाब दे सकते हैं।
जानू

0

संग्रहीत दिनचर्या और ईवेंट परिभाषाओं को शामिल करने के लिए --routines और --events विकल्प भी जोड़ें

mysqldump -u <user> -p --no-data --routines --events test > dump-defs.sql

-1

आप निम्न विधि का उपयोग करके ले सकते हैं

mysqldump -d <database name> > <filename.sql> // -d : without data

आशा है कि यह आपकी मदद करेगा


6
यह उत्तर कुछ भी नहीं जोड़ता है कि अन्य उत्तर ने पहले ही नहीं कहा है।
डैनियल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.