MySQL डेटाबेस को PostgreSQL में परिवर्तित करने के लिए कोई कमांड लाइन टूल है? मैं यह भी जानना चाहूंगा कि क्या सामान्य mysqldump
कमांड का उपयोग करके डेटाबेस को बदलने का कोई तरीका है ।
MySQL डेटाबेस को PostgreSQL में परिवर्तित करने के लिए कोई कमांड लाइन टूल है? मैं यह भी जानना चाहूंगा कि क्या सामान्य mysqldump
कमांड का उपयोग करके डेटाबेस को बदलने का कोई तरीका है ।
जवाबों:
आपने कोशिश की है:
mysqldump --compatible=postgresql dbname > export.sql
फिर उद्धरणों से बचने के लिए ऐसा करें
sed "s/\\\'/\'\'/g" export.sql > export1.sql
कुछ अधिक मालिश की आवश्यकता हो सकती है ताकि mysqldump डोको को अधिक बारीकी से देखें।
mysqldump
अभी तय नहीं है। syntax error at or near "(" LINE 2: "id" int(10) NOT NULL,
यहाँ कुछ खुले स्रोत उपकरण हैं, जो बहुत मददगार हो सकते हैं:
FromMySqlToPostgreSql
एक फीचर-पहुंच उपकरण है और इसका उपयोग करना बहुत आसान है।
यह डेटा-प्रकारों को मैप करता है, माइग्रेशन की कमी, इंडेक्स, पीके और एफके ठीक उसी तरह से जैसे वे आपके MySQL db में थे।
हुड के तहत यह PostgreSQL COPY का उपयोग करता है, इसलिए डेटा ट्रांसफर बहुत तेज है।
FromMySqlToPostgreSql PHP में लिखा (> = 5.4)।
pgloader COPY कमांड का उपयोग करके PostgreSQL के लिए डेटा लोड करने का उपकरण है। केवल उपयोग करने पर इसका मुख्य लाभ
COPY
या \copy
, और एक विदेशी डेटा आवरण का उपयोग करने पर, इसका लेन-देन व्यवहार है, जहां pgloader अस्वीकृत डेटा की एक अलग फ़ाइल रखेगा, लेकिन अपने डेटाबेस में अच्छे डेटा की प्रतिलिपि बनाने का प्रयास जारी रखें। डिफ़ॉल्ट PostgreSQL व्यवहार ट्रांजेक्शनल है, जिसका अर्थ है कि इनपुट डेटा (फ़ाइल या रिमोट डेटाबेस) में कोई भी गलत लाइन टेबल के लिए पूरे बल्क लोड को रोक देगी। pgloader भी डेटा पुनरावृत्ति को लागू करता है, इसका एक विशिष्ट उदाहरण Mygc datestamps का परिवर्तन 0000-00-00 और 0000-00-00 00:00:00 PostgreSQL में किया जा रहा हैNULL
मूल्य (क्योंकि हमारे कैलेंडर में कभी एक वर्ष शून्य नहीं था)।
वास्तव में एक फ्री माइग्रेशन टूल है जो कि प्रयोग करने में काफी आसान है, जो कि एंटरप्राइज़डीबी द्वारा स्वयं विकसित किया गया है। इसे StackBuilder: माइग्रेशन टूलकिट के माध्यम से इंस्टॉल किया जा सकता है
मैं हाल ही में DBConvert से एक गैर-मुक्त उपकरण का उपयोग करने के लिए एक अभिगम डेटाबेस को पोस्टग्रेज करने के लिए परिवर्तित करता हूं , और मैंने इसे मुफ्त में मज़बूती से करने की कोशिश में जितना समय बर्बाद किया है, उसकी तुलना में यह अच्छी तरह से लायक है। MySQL के लिए एक समान टूल बेचें <-> पोस्टग्रेज , जिसका मैंने उपयोग नहीं किया है, लेकिन अच्छी तरह से विचार करने के लायक हो सकता है जब तक कि आप केवल कमांड लाइन टूल में रुचि नहीं लेते।
मामले में आप सोच रहे हैं कि मैं उनके साथ किसी भी तरह से संबद्ध नहीं हूं :-)
आप उदाहरण के लिए EnterpriseDB माइग्रेशन विज़ार्ड का उपयोग कर सकते हैं।
यह OracleDB को आसानी से माइग्रेट कर सकता है। लेकिन मैसकल के लिए, इसकी कुछ सीमाएँ हैं, उदाहरण के लिए, यह विचारों, ट्रिगर, संग्रहीत प्रक्रियाओं का समर्थन नहीं करता है।
अधिक के लिए, EDB माइग्रेशन टूलकिट देखें । निश्चित नहीं है, लेकिन mysql-> oracle-> postgresql को अपने संग्रहीत कार्यविधियों (यदि वे मौजूद हैं) को बचाने के लिए माइग्रेट करना संभव हो सकता है।
यह ग्रीप: डेटाबेस और एसक्यूएल माइग्रेशन टूल
यह केवल मौजूदा उत्तरों को जोड़ने के लिए है, जिसने मुझे इस समाधान को खोजने में मदद की। मैंने FromMySqlToPostgreSql का उपयोग किया । आपको बस यह करना है कि FromMySqlToPostgreSql को डाउनलोड करें और निकालें , नमूना कॉन्फिगर फ़ाइल की एक प्रति बनाएँ, इसमें db कनेक्शन मान सेट करें, और निम्न कमांड के साथ इंडेक्स फ़ाइल चलाएँ:
php index.php config.xml
सरल अभी तक प्रभावी!
एक ओपनसोर्स टूल है, जो MySQL db को Postgresql db शामिल इंडेक्स, fks और डेटा में बदलने के लिए फंक्शंस प्रदान करता है।
https://github.com/ggarri/mysql2psql
यह टूल स्कीमा परिवर्तनों को भी परिभाषित करने की अनुमति देता है ताकि आप रन टाइम में अपने वर्तमान स्कीमा में कुछ अपग्रेड कर सकें।