ऐक्टर माइग्रेशन
ऐतिहासिक रूप से मीडियाविकि दूसरे सदस्यों के अपने सन्दर्भों (जैसे किसी अवतरण या चित्र के लेखक) को [<id>, <name>]
जोड़ी के रूप में रखता था, और गुमनाम संपादनों के लिए [0, <IP address>]
के रूप में।
यह जगह की बर्बादी थी, इससे बहुत सारे अवतरणों वाले विकियों पर प्रदर्शन में कमी आती थी, और इससे सदस्यों के नाम को बदलना या T133452 जैसे नए लेखकों को लाना मुश्किल हो गया था।
मीडियाविकि 1.31 में की बात आती है 'ऐक्टर्स' (ऐसा कोई जो कोई कार्य या लॉग कार्य करचा है; और वह पंजीकृत या गुमनाम भी हो सकता है), और एक नए डेटाबेस की तरफ माइग्रेशन प्रक्रिया जिसमें revision.rev_user
और revision.rev_user_text
जैसे फील्ड revision.rev_actor
जैसे फील्ड से बदल दिए जाते हैं।
अंग्रेज़ी विकिपीडिया के revision
टेबल का आकार विशाल है और बदलावों को साफ़ करने से पहले माइग्रेशन को पूरा करना ज़रूरी है। इसीलिए माइग्रेशन धीरे-धीरे कई मीडियाविकि प्रकाशनों के दौरान किया जा रहा है।
इसे मीडियाविकि 1.34 तक खत्म हो जाना चाहिए।
यह माइग्रेशन हर *_user
/ *_user_text
जोड़ी के लिए एक actor टेबल रिकॉर्ड बना लेगा, और इन जोड़ियों को नए ऐक्टर रो ID से बदल देगा।
इन कॉलम्स को माइग्रेट किया जा रहा है:
टेबल | पुराने कॉलम | नया कॉलम |
---|---|---|
revision | rev_user, rev_user_text | rev_actor |
archive | ar_user, ar_user_text | ar_actor |
ipblocks | ipb_by, ipb_by_text | ipb_by_actor |
image | img_user, img_user_text | img_actor |
oldimage | oi_user, oi_user_text | oi_actor |
filearchive | fa_user, fa_user_text | fa_actor |
recentchanges | rc_user, rc_user_text | rc_actor |
logging | log_user, log_user_text | log_actor |
बड़े विकिपीडिया विकियों के revision
टेबलों में एक महंगे पड़ने वाले ALTER TABLE का इस्तेमाल करने की जगह, rev_user
और rev_user_text
को पहले revision_actor_temp टेबल पर कॉपी कर लिया जाता है और फिर वापस revision
पर।
revision_actor_temp
टेबल को बाद में छोड़ दिया जाएगा।
अगर आप एक विकि के मालिक है, शायद आपको कुछ करने की भी ज़रूरत नहीं पड़ी होगी, माइग्रेशन update.php
चलाने पर अपने आप हो जाएगा।
अगर आप यह तय करना चाहते हैं कि माइग्रेशन कब होता है, $wgActorTableSchemaMigrationStage और migrateActors.php अनुरक्षण स्क्रिप्ट देखें।
अगर आप किसी एक्सटेंशन के विकासक हैं, और आपका एक्सटेंशन कुछ प्रभावित फील्ड्स को DB तक पहुँचने देता है, आपको अपने क्वेरी बदलने होंगे (और अपने क्वेरी को खुद बनाने के बजाय Revision::getQueryInfo()
जैसे getQueryInfo()
तरीकों का इस्तेमाल करना होगा)।
माइग्रेशन के दौरान आप $wgActorTableSchemaMigrationStage
सेटिंग पर निर्भर किसी स्केमा/फील्ड की जानकारी पाने के लिए ActorMigration
क्लास का उपयोग कर सकते हैं।
अगर आप Toolforge का इस्तेमाल कर रहे एक उपकरण डेवलपर हैं, प्रदर्शन में तब भी बदलाव आ सकता है अगर आप प्रभावित फील्ड्स का सीधे इस्तेमाल न करें। अधिक जानकारी के लिए wikitech:News/Actor storage changes on the Wiki Replicas देखें।