2011-04-15 13 views
5

को देखने के लिए SchemaSpy का उपयोग करके मैं SchemaSpy के साथ एक स्क्लाइट डंप बनाने की कोशिश कर रहा हूं। मुझे SchemaSpy मिल गया और चल रहा था और एक MySQL डेटाबेस को ठीक से डंप करने में सक्षम था।SQLite डेटाबेस (विंडोज़)

अब मेरे पास एक .sqlite फ़ाइल (आईओएस एप्लिकेशन से) और क्रिश्चियन वर्नर (http://www.ch-werner.de/javasqlite/overview-summary.html) से एक स्क्लाइट ड्राइवर है। here पर एक उदाहरण बताता है कि इसके साथ कैसे काम करना है लेकिन ईमानदार होना - मुझे समझ में नहीं आता कि क्या करना है।

क्या कोई ऐसा व्यक्ति है जो जानता है कि मैं विंडोज़ पर SchemaSpy का उपयोग कैसे कर सकता हूं? हालांकि, मेरे लिए जीयूआई उपकरण का उपयोग करना आवश्यक नहीं है।

+1

कुछ मदद के साथ कोई नहीं? – Thorben

उत्तर

0

मुझे आश्चर्य है कि आपको स्क्लाइट ड्राइवर क्यों प्राप्त करने की आवश्यकता है। बस tell SchemaSpy your DB type वर्ग है और आप ठीक रहेगा। जैसे

जावा कुछ जार schemaSpy.jar -db < अपनी फ़ाइल > -ओ < उत्पादन SQLite -टी >

+0

कृपया ऊपर मेरी टिप्पणी देखें। यह उस तरह से काम नहीं करता है। मैंने आईओएस ऐप से एक स्क्लाइट फ़ाइल प्रदर्शित करने का प्रयास किया। इसके अतिरिक्त, मुझे एक निश्चित उपयोगकर्ता निर्दिष्ट करने के लिए विकल्प -u जोड़ने के लिए कहा गया था। कोई भी जानता है कि यह क्या हो सकता है? – Thorben

0

यह आमतौर पर latest beta version of SchemaSpy हड़पने के लिए सबसे अच्छा है। आमंत्रण MySQL के खिलाफ चलने के समान होना चाहिए, सिवाय इसके कि आप -t sqlite के साथ अपना डेटाबेस प्रकार निर्दिष्ट करें और अपनी .sqlite फ़ाइल में "डेटाबेस" को इंगित करें।

SQLite ड्राइवर उनके कार्यान्वयन के लिए जेएनआई का उपयोग करते हैं, इसलिए आपको यह सुनिश्चित करना होगा कि sqlite_jni.dll आपके पथ में है। अस्थायी रूप से एक Windows कमांड प्रॉम्प्ट में अपने पथ में जोड़ने के लिए:

सेट पथ =% पथ%; directoryContainingTheJniDll

+0

मैंने ऐसा किया लेकिन क्लास नॉटफाउंड अपवाद प्राप्त किया: SQLite.JDBCDriver। ऐसा लगता है कि वह एक sqlite.jar फ़ाइल की तलाश में है जो स्पष्ट रूप से वहां नहीं है ... – Thorben

0

मैं लेख आप का उल्लेख में से एक के लेखक हूँ।

आपको schemaspy जेडीबीसी ड्राइवर को संकलित करने की आवश्यकता है। यह यूनिक्स के लिए लिखा गया था लेकिन किसी ने लेखक को notes on building it in a Windows environment भेजा था। लेकिन sqlite.jar और .dll के साथ आपको files for windows prebuilt का एक सेट है। एक बार जब आप क्लासपाथ पर इसे सीधे प्राप्त कर लेंगे।

यदि यह सब भी आप के लिए बहुत कुछ है, तो आप हमेशा अप sqlite3 CLI सक्रिय कर सकता है और तालिकाओं डंप करने के लिए .schema आदेश का उपयोग करें, और उन्हें एक डेटाबेस आप को पता है कनेक्ट करने के लिए कैसे करना है में स्थापित। या सेट अप और उबंटू वीएम;)

+0

आपकी मदद के लिए धन्यवाद। इसलिए मैंने उन पूर्वनिर्धारित फ़ाइलों को चलाने की कोशिश की जो असफल हो गए (64 बिट जीतने वाली फ़ाइलें लेकिन फाइलें 32 बिट हैं) और उसके बाद विजुअल स्टूडियो 2005 के साथ स्रोत को संकलित करने में विफल रहा। 6 इस तरह की त्रुटियां:। \ SQLite \ JDBC2x \ JDBCPreparedStatement.java: 21: SQLite.JDBC2x.JDBCPreparedStatement सार नहीं है और java.sql में int विधि setNClob (int, java.io.Re ader) को ओवरराइड नहीं करता है। प्रीपेरस्टेटमेंट – Thorben

+0

सीएलआई के साथ अपने दूसरे दृष्टिकोण का उपयोग कैसे करें? यदि मैं पहले टेबल को डंप करता हूं, तो उनके बीच आईओएस विशिष्ट संबंध हैं? – Thorben

+0

मुझे यकीन नहीं है कि आईओएस विशिष्ट संबंध क्या होगा। ध्यान रखें कि स्क्लाइट डेटाबेस शायद ही कभी किसी भी विदेशी कुंजी बाधाओं को लागू करते हैं, इसलिए स्कीमास्पी से अधिकतर एफके रिश्ते अनुमान लगाएंगे। – jldugger

2

मैं भी इस समस्या में भाग गया लेकिन आखिरकार इसे काम कर दिया। SQLite लाइब्रेरी के लिए आपको DLL की आवश्यकता है।

आप इसे here डाउनलोड कर सकते हैं, और फिर आप अपने विंडोज़ स्थापना की system32 फ़ोल्डर पर डाल सकते हैं (सी: उदाहरण के लिए \ Windows \ System32)

अन्त में, सटीक JDBC ड्राइवर पथ निर्दिष्ट करने के लिए मत भूलना :

java -jar… -dp "D:\SchemaSpy\driver\j2sdk1.4.2_03\jre\lib\ext\sqlite.jar" … 
0

मुझे पता है यह एक पुराने सवाल है, लेकिन रिकार्ड के लिए यह संभव SchemaSpy Xerial SQLite JDBC ड्राइवर का उपयोग करने के लिए, निम्न है कठिनाई की एक बड़ी राशि के बिना इसके लिए एक नया .properties फ़ाइल रोलिंग द्वारा http://schemaspy.sourceforge.net/dbtypes.html

पर निर्देश

आपको बस इतना करना है कि मौजूदा sqlite.properties की प्रतिलिपि बनाएँ, इसे sqlite-xerial जैसे कुछ नाम दें।गुण और प्रासंगिक लाइनों को बदलें; उदाहरण के लिए:

driver=org.sqlite.JDBC

description=SQLite-Xerial

driverPath=sqlite-jdbc-3.7.2.jar

Xerial ड्राइवर JNI DLL फ़ाइल की जरूरत नहीं है और यह भी सही ढंग से किसी भी कॉन्फ़िगर किया गया FK संबंधों उठा को लाभ मिलता है - कम से कम के साथ SQLite 3 डेटाबेस मैंने इसका परीक्षण किया है।

यह तालिका या कॉलम नामों को संदर्भित करते समय कुछ चेतावनियां फेंक देता है जो कीवर्ड भी हैं, लेकिन यह [] में उन्हें लपेटने के लिए SchemaSpy की गलती हो सकती है। या तालिका और कॉलम नाम के रूप में कीवर्ड का उपयोग करने के लिए स्कीमा डिजाइनरों के दोष :)

संबंधित मुद्दे