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

SQLITE SQL डंप फ़ाइल को POSTGRESQL में बदलें

आपको उस डंप फ़ाइल को सीधे psql . में फीड करने में सक्षम होना चाहिए :

/path/to/psql -d database -U username -W < /the/path/to/sqlite-dumpfile.sql

अगर आप id चाहते हैं कॉलम को "ऑटो इंक्रीमेंट" में बदल दें और फिर टेबल क्रिएशन लाइन में इसके प्रकार को "इंट" से "सीरियल" में बदल दें। PostgreSQL तब उस कॉलम में एक अनुक्रम संलग्न करेगा ताकि NULL आईडी वाले INSERTs को स्वचालित रूप से अगला उपलब्ध मान असाइन किया जा सके। PostgreSQL AUTOINCREMENT को भी नहीं पहचान पाएगा आदेश, इसलिए इन्हें हटाने की आवश्यकता है।

आप datetime . के लिए भी जांच करना चाहेंगे SQLite स्कीमा में कॉलम और उन्हें timestamp . में बदलें पोस्टग्रेएसक्यूएल के लिए। (इसे इंगित करने के लिए क्ले को धन्यवाद।)

यदि आपके SQLite में बूलियन हैं तो आप 1 . को कन्वर्ट कर सकते हैं और 0 करने के लिए 1::boolean और 0::boolean (क्रमशः) या आप डंप के स्कीमा सेक्शन में बूलियन कॉलम को एक पूर्णांक में बदल सकते हैं और फिर आयात के बाद उन्हें PostgreSQL के अंदर हाथ से ठीक कर सकते हैं।

यदि आपके SQLite में BLOB हैं तो आप bytea का उपयोग करने के लिए स्कीमा को समायोजित करना चाहेंगे . आपको शायद कुछ decode में मिलाना होगा कॉल भी करते हैं। यदि आप बहुत सारे बीएलओबी से निपटने के लिए हैं, तो अपनी पसंदीदा भाषा में एक त्वरित 'गंदा कॉपियर लिखना एसक्यूएल को मैनेज करने से आसान हो सकता है।

हमेशा की तरह, यदि आपके पास विदेशी कुंजियाँ हैं तो आप शायद set constraints all deferred पर देखना चाहेंगे इंसर्ट ऑर्डरिंग समस्याओं से बचने के लिए, कमांड को BEGIN/COMMIT पेयर के अंदर रखें।

बूलियन, बूँद, और बाधा नोट के लिए निकोलस रिले को धन्यवाद।

अगर आपके पास ` . है आपके कोड पर, जैसा कि कुछ SQLite3 क्लाइंट द्वारा जेनरेट किया गया है, आपको उन्हें हटाना होगा।

PostGRESQL unsigned को भी नहीं पहचानता है कॉलम, ताकि आप उसे छोड़ना चाहें या इस तरह की कस्टम-निर्मित बाधा जोड़ना चाहें:

CREATE TABLE tablename (
    ...
    unsigned_column_name integer CHECK (unsigned_column_name > 0)
);

जबकि SQLite शून्य मानों को '' . पर डिफॉल्ट करता है , PostgreSQL को उन्हें NULL . के रूप में सेट करने की आवश्यकता है ।

SQLite डंप फ़ाइल में सिंटैक्स ज्यादातर PostgreSQL के साथ संगत प्रतीत होता है ताकि आप कुछ चीजों को पैच कर सकें और इसे psql पर फीड कर सकें। . SQL INSERTs के माध्यम से डेटा का एक बड़ा ढेर आयात करने में कुछ समय लग सकता है लेकिन यह काम करेगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कोई भी ऑपरेटर दिए गए नाम और तर्क प्रकार से मेल नहीं खाता। आपको स्पष्ट प्रकार के कास्ट जोड़ने की आवश्यकता हो सकती है। --नेटबीन्स, पोस्टग्रेस्क्ल 8.4 और ग्लासफ़िश

  2. जावा क्रॉसस्टैब - तैयार बयान क्वेरी

  3. Postgres . में एक अंतराल में एक चर अवधि का उपयोग करना

  4. PostgreSQL 12 . के लिए डेटाबेस प्रबंधन और निगरानी

  5. Psycopg2 स्थापित करने में त्रुटि ==2.6.2