हटाए गए टिकटों को पुनर्प्राप्त करना - कैसे

हटाए गए टिकटों को पुनर्प्राप्त करना

सबसे पहले, अस्वीकरण:

स्पिकवर्क समर्थन उनके डेटाबेस के प्रत्यक्ष हेरफेर की सिफारिश नहीं करता है। यदि आप टिकट आयात प्रक्रिया का उपयोग कर सकते हैं और मैन्युअल रूप से जो आयात नहीं किया जा सकता है उसमें भरें, तो मेरा सुझाव है कि आप वह तरीका अपनाएं।

मेरे मामले में, हमारे एक टेक ने गलती से रेंज के "टू" भाग में दो अंकों को अलग करके 300 टिकट हटा दिए। आधे दिन का काम बीत जाने के बाद ऐसा हुआ, और हमारे विकल्पों की पहचान करने से पहले एक और दिन बीत चुका था।

हमारी पसंद पुराने बैकअप को वापस करना और दर्ज किए गए टिकटों को पकड़ने की कोशिश करना था (लेकिन दिन और डेढ़ के लिए किसी भी अन्य स्पिकवर्क गतिविधि को खोना) या बैकअप से पहले की रात से 300 को पुनर्स्थापित करने का प्रयास करना। हमने महसूस किया कि बाद वाले ने समग्र पर्यावरण पर कम प्रभाव डाला।

ऐसा करने के दो तरीके थे - उपयोगिता का उपयोग करके टिकटों का आयात करना और उन सभी सूचनाओं को भरना, जो आयात नहीं करेंगे (टिप्पणियां, अटैचमेंट, आदि) या अनुमान लगा लें कि कौन से रिकॉर्ड को किस टेबल पर आयात करना है और देखें कि क्या काम करेगा । हमने यहां बाद वाला विकल्प भी चुना।

यहां हमने जो कदम उठाए हैं:

कुल 8 चरण

चरण 1: तालिकाओं को अद्यतन करने की अपनी विधि चुनें

- मैं एमएस एक्सेस का उपयोग कर रहा हूं, इसलिए मैंने इसे प्रत्येक डेटाबेस पर टिकट, टिकट_इनवोल्यूशन और कॉमेंट टेबल से जोड़ा। जहां तक ​​मैं बता सकता हूं, ये केवल तीन टेबल हैं जिनका टिकट से कोई लेना देना नहीं है।
"टिकट" - स्पष्ट रूप से मुख्य तालिका।
"ticket_involvements" - ईमानदारी से, मुझे नहीं पता कि यह किस उद्देश्य से कार्य करता है। मुझे लगा कि जब तकनीक टिकट को अपडेट करती है तो यह किसी प्रकार का लॉग हो सकता है, लेकिन मेरी मेज पर वॉल्यूम इतना कम है, यह कुछ और होना चाहिए।
"टिप्पणियां" - ये तकनीक द्वारा दर्ज की गई व्यक्तिगत टिप्पणियां हैं। इनमें अटैचमेंट के पॉइंट भी होते हैं।

- ध्यान दें कि आप शायद प्रत्यक्ष SQL उपकरण का उपयोग कर सकते हैं, जैसे कि SQLite2009 प्रो एंटरप्राइज मैनेजर, अपडेट चलाने के लिए।

चरण 2: संलग्नक पुनर्प्राप्त करें

- बैकअप स्पिकवर्क फ़ोल्डर में, डेटा अपलोड टिकट सबफ़ोल्डर खोजें।

- वर्तमान, उत्पादन डेटाबेस के लिए समान Spiceworks data uploads टिकट सबफ़ोल्डर में हटाए गए टिकटों के लिए सभी सबफ़ोल्डर्स को वहां कॉपी करें।

चरण 3: अपने ODBC कनेक्शन सेट करें

- मैंने SQLite2009 Pro ODBC ड्राइवर को डाउनलोड और इंस्टॉल किया और दो ODBC कनेक्शन स्थापित किए - एक बैकअप डेटाबेस में और एक वर्तमान डेटाबेस में।

चरण 4: उत्पादन तालिका का बैक अप लें

बस स्पिकवर्क में बैकअप प्रक्रिया का उपयोग करें।

चरण 5: स्पिकवर्क सेवा बंद करें

चरण 6: हटाए गए आइटम को पुनर्प्राप्त करने के लिए क्वेरी / स्क्रिप्ट बनाएं और चलाएं

उदाहरण के लिए, ये हमारे द्वारा उपयोग किए गए SQL कथन थे:

INSERT INTO टिकट_कार्य (आईडी, सारांश, स्थिति, विवरण, प्राथमिकता, time_to_resolve, देय_date, टिकटable_type, ticketable_id, create_at, updated_at, बंद_बनाया, बनाया_by, seen_at, reopened, requirement_purchase, श्रेणी, time_spent, external_spent, बाहरी_स्पेंट, बाहरी, आदि) error_alert_count, c_second_level, c_third_level, c_duration, c_user, मौन)
चयनित आईडी, सारांश, स्थिति, विवरण, प्राथमिकता, time_to_resolve, देय_date, टिकटयोग्य_टाइप, टिकटयोग्य_निधि, बनाया_त, अद्यतन_त, बंद_त, बनाया_बी, सौंपा_तो, देखा गया, फिर से खोला गया, आवश्यकताएं_पुर्जा, श्रेणी, time_spent, external_id, email_messess_messesss.messesss.messess_sate , c_third_level, c_duration, c_user, muted FROM Tickets_bkup WHERE ((id)> 1691 और (id) <1963);

INSERT INTO ticket_involvements_current (id, user_id, टिकट_id, create_at, updated_at)
Select id, user_id, ticket_id, create_at, updated_at fromROM टिकट_involvements_bkup WHERE (((टिकट_ड))> 1691 और (टिकट_आईडी) <1963);

INSERT INTO comments_current (आईडी, टिकट_आईडी, निकाय, बनाया_आट, अद्यतित_त, बनाया_बना, is_public, अनुलग्नक_लोकेशन, अनुलग्नक_कंटेंट_टाइप, अनुलग्नक_नाम)
सेलेक्ट आईडी, टिकट_आईडी, बॉडी, create_at, updated_at, create_by, is_public, अनुलग्नक_लोकेशन, अटैचमेंट_कंटेंट_टाइप, अटैचमेंट_नाम FROM comments_bkup WHERE ((टिकट आईडी))> 1691 और (टिकट_आईडी) <1963);

चरण 7: सेवा को वापस शुरू करें और टिकटों के नमूने की जांच करें

चरण 8: देखें कि क्या स्पिकवर्क सपोर्ट आपके लिए अपने डेटाबेस पर एक चेक चलाएगा

- मैं इस भर में एसडब्ल्यू सपोर्ट के किसी व्यक्ति के संपर्क में था। हालांकि उन्होंने इस दृष्टिकोण की निंदा नहीं की, उन्होंने अनाथ रिकॉर्ड्स की जांच करने और अनुक्रमित पुन: निर्माण करने के लिए मेरे अपडेट के बाद डेटाबेस के खिलाफ अपनी उपयोगिताओं को चलाने के लिए विनम्रतापूर्वक पेश किया।

- ऐसा करने के लिए, आपको एक समय खोजने की आवश्यकता है जब आप स्पिकवर्क को ऑफ़लाइन ले जा सकते हैं, डेटा और डीबी फ़ोल्डर्स को ज़िप कर सकते हैं, उन्हें समर्थन साधन के माध्यम से भेज सकते हैं, उन्हें चेक चला सकते हैं और फिर वे वापस आने वाले डेटाबेस से पुनर्स्थापित कर सकते हैं।

FYI करें, हमारे मामले में, कई अनाथ रिकॉर्ड थे। रिकॉर्ड प्रकार निर्दिष्ट नहीं किए गए थे, और चूंकि टिकट और संबंधित आइटम बरकरार दिख रहे हैं, इसलिए मैं मान रहा हूं कि ये अन्य तालिकाओं से थे।

फिर, यदि आप स्पिकवर्क-समर्थित साधनों के माध्यम से आपको जो कुछ भी चाहिए उसे पूरा कर सकते हैं, तो मैं इसकी सलाह देता हूं। हमारे मामले के लिए, हालांकि, हम पूरी तरह से हटाए जाने से पुनर्प्राप्त हैं, और अब तक, सिस्टम अच्छी तरह से काम कर रहा है।