svn cleanup: sqlite: डेटाबेस डिस्क छवि विकृत है




tortoisesvn (10)

मैं एक svn cleanup करने की कोशिश कर रहा था क्योंकि मैं अपनी कामकाजी प्रति में बदलाव नहीं कर सकता, और मुझे निम्न त्रुटि मिली:

sqllite: डेटाबेस डिस्क छवि विकृत है

मैं अभी क्या कर सकता हूं?


अखंडता की जांच

sqlite3 .svn/wc.db "pragma integrity_check"

साफ - सफाई

sqlite3 .svn/wc.db "reindex nodes"
sqlite3 .svn/wc.db "reindex pristine"

वैकल्पिक रूप से

आप डेटाबेस की सामग्री को डंप करने में सक्षम हो सकते हैं जिसे बैकअप फ़ाइल में पढ़ा जा सकता है, फिर इसे वापस एक नई डेटाबेस फ़ाइल में स्लिप करें:

sqlite3 .svn/wc.db

sqlite> .mode insert
sqlite> .output dump_all.sql
sqlite> .dump
sqlite> .exit

mv .svn/wc.db .svn/wc-corrupt.db
sqlite3 .svn/wc.db

sqlite> .read dump_all.sql
sqlite> .exit

  1. इस svn को दूसरी जगह पर देखें
  2. छुपा .svn फ़ाइल दिखाओ
  3. WC फ़ाइल को प्रतिस्थापित करें

यह मेरे लिए काम करता है!


ऐप विकास के दौरान मैंने पाया कि संदेश लगातार और बड़े पैमाने पर INSERT और अद्यतन संचालन से आते हैं। एक ही ऑपरेशन में एकाधिक पंक्तियों या डेटा को INSERT और अद्यतन करना सुनिश्चित करें।

var updateStatementString : String! = ""

for item in cardids {

let newstring = "UPDATE "+TABLE_NAME+" SET pendingImages = '\(pendingImage)\' WHERE cardId = '\(item)\';"
            updateStatementString.append(newstring)

        }


        print(updateStatementString)
        let results = dbManager.sharedInstance.update(updateStatementString: updateStatementString)

        return Int64(results)

क्या आपने इस पोस्ट को उपवर्तन साइट पर देखा है? आप here वर्णित डेटाबेस को सीधे सत्यापित करने और "फिक्सिंग" करने का भी प्रयास कर सकते here । (ध्यान दें कि मैं कोई विशेषज्ञ नहीं हूं, मैंने अभी एक त्वरित Google खोज की है। आपके मुद्दों से बिल्कुल संबंधित नहीं हो सकता है)।

निजी तौर पर, मैं फिर से रेपो की जांच करने और अपने परिवर्तनों को पुनः प्रयास करने का प्रयास करता हूं। सुनिश्चित नहीं है कि यह आपके मामले में हालांकि संभव है?


पावर ब्लैकआउट के बाद, मैं डेटाबेस डिस्क छवि में भाग गया विकृत त्रुटि है और सुझाए गए रेनडिएक्स नोड्स कमांड ने उल्लंघन की बाधाओं के कारण सभी मुद्दों को ठीक नहीं किया है। http://mail-archives.apache.org/mod_mbox/subversion-users/201111.mbox/%[email protected]%3E में वर्णित प्रक्रिया भी समस्या का समाधान नहीं करती है।

मेरे मामले में समाधान:

  • फिर से अस्थायी फ़ोल्डर में svn भंडार को चेकआउट करें
  • कॉपी, यानी प्रतिस्थापित करें, नए चेकआउट से भ्रष्ट एक फ़ाइल ".svn / wc.db" फ़ाइल

यह उपयोगी हो सकता है, यदि आपके मूल svn चेकआउट में कई संशोधित या अनवरोधित फ़ाइलें हैं और आप एक नए svn चेकआउट पर स्विच नहीं करना चाहते हैं।


मुझे भी यही समस्या थी। निम्नलिखित ब्लॉग पोस्ट ने मुझे इसे हल करने में मदद की: http://www.polak.ro/svn-e200030-sqlite-database-disk-image-is-malformed.html

आप sqlite डेटाबेस पर एक अखंडता जांच करते हैं जो भंडार (/.svn/wc.db) का ट्रैक रखता है:

sqlite3 .svn/wc.db "pragma integrity_check"

उसमें कुछ त्रुटियों की रिपोर्ट करनी चाहिए।

फिर आप उन्हें कर कर साफ कर सकते हैं:

sqlite3 .svn/wc.db "reindex nodes"
sqlite3 .svn/wc.db "reindex pristine"

यदि उसके बाद भी त्रुटियां हैं, तो आपको अभी भी एक अस्थायी फ़ोल्डर में भंडार की एक ताजा प्रति जांचने का विकल्प मिला है और ताजा प्रतिलिपि से पुराने संस्करण में .svn फ़ोल्डर की प्रतिलिपि बनाएँ। फिर पुरानी प्रतिलिपि फिर से काम करनी चाहिए और आप अस्थायी फ़ोल्डर को हटा सकते हैं।


मैंने अपने सहकर्मी कार्यकर्ता की निर्देशिका से .svn फ़ोल्डर पर प्रतिलिपि बनाई और इस मुद्दे को ठीक किया।


मैंने छुपा। एसवीएन फ़ोल्डर को हटाकर और उसी यूआरएल पर फ़ोल्डर पर एक चेकआउट निष्पादित करके मेरे साथ होने के एक उदाहरण के लिए इसे ठीक किया।

इसने मेरी संशोधित फ़ाइलों में से किसी एक को ओवरराइट नहीं किया और सर्वर से ताजा प्रतियों को पकड़ने की बजाय सभी मौजूदा फ़ाइलों को बस संस्करणित किया।


यदि आप कछुआ एसवीएन स्थापित करते हैं, तो कृपया टास्क मैनेजर पर जाएं और इसे रोक दें। फिर फ़ोल्डर को हटाने का प्रयास करें। यह काम करेगा


शायद, एक समाधान हो सकता है:

  1. सही माउस परियोजना पर क्लिक करें
  2. टीम -> डिस्कनेक्ट करें
  3. चुनें: भी हटाएं ...

अब, फिर से कनेक्ट करें:

  1. सही माउस परियोजना पर क्लिक करें
  2. टीम -> परियोजना साझा करें
  3. अपने repositorie चयन करें: मेरा SVN (अन्य मामला: गिट, आदि)
  4. अपने repositorie फ़ोल्डर का चयन करें

ध्यान दें:

मेरे मामले में, मैंने अपनी फाइलों का बैकअप लिया। (सुरक्षित आप वापस: पी)

संपादित करें:

मैं Eclipse पर SVN प्लगइन के बारे में बात कर रहा हूँ :)





tortoisesvn