ترحيل الفاعل

This page is a translated version of the page Actor migration and the translation is 100% complete.

كانت تخزن برمجيات ميدياويكي في السابق إشارات إلى المستخدمين (مثل مؤلف مراجعة أو صورة) في صفة زوجين ‎[<id>, <name>]‎، بينما تستخدم ‎[0, <IP address>]‎ للتعديلات مجهولة المصدر. كان هذا الأمر سببًا في تكديس مساحة التخزين ونتج عنه مشاكل في الأداء على مواقع الويكي التي يوجد فيها عدد ضخم من المراجعات كما نتج عنه صعوبة إعادة تسمية المستخدمين أو إضافة نوع جديد من المؤلفين مثل T133452. قدمت نسخة 1.31 من برمجيات ميدياويكي مبدأ الفاعل – actor (شخص يقوم بفعل، مثل تعديل أو حدث في سجل؛ سواء كان هذا إما مستخدم مسجل أو شخص مجهول في الوقت الراهن)، وكذلك عملية ترحيل إلى مخطط بيانات قاعدة بيانات جديدة، حيث يحل محل خانات مثل ‎revision.rev_user‎ و ‎revision.rev_user_text‎ خانات مثل ‎revision.rev_actor‎. بسبب الحجم الضخم لجدول revision في ويكيبيديا الإنكليزية، الذي يتعين أن يرحّل كاملًا قبل تنظيف التغييرات، يجري الترحيل تدريجيًا، مقسمًا على عدة إصدارات من برمجيات ميدياويكي. نتوقع أن ينتهي الأمر في برمجيات ميدياويكي 1.34.

سيستحدث الترحيل قيد جدول actor لكل زوجين فريدين من ‎*_user‎ / ‎*_user_text‎ وكذلك سيستبدل هذه الأزواج بإشارة إلى معرّف صف الفاعل. يجري ترحيل الأعمدة التالية:

جدول أعمدة قديمة أعمدة جديدة
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

كي نتجنب إجراء ALTER TABLE مكلف على جداول revision الضخمة للغاية على مواقع الويكي تحت مظلة ويكيبيديا، سوف ينسخ في البداية كلا من ‎rev_user‎ و ‎rev_user_text‎ إلى جدول ‎revision_actor_temp ‎ ومن هناك سوف تنقل مرة أخرى إلى revision. سوف يهمل الجدول revision_actor_temp لاحقًا.

لو كنت مالك موقع ويكي، ربما لا تحتاج إلى فعل أي شيء منذ أن الترحيل سوف ينفّذ آليًا حينما تشغّل update.php. لو كنت ترغب في التحكم في وقت حدوث الترحيل، طالع ‎$wgActorTableSchemaMigrationStage وكذلك نص الصيانة البرمجي migrateActors.php .

لو كنت من مطوري الامتدادات، وكان امتدادك يصل إلى قاعدة البيانات مباشرة وصولا إلى بعض الخانات المتأثرة، سوف تحتاج إلى تحديث استعلاماتك (ويفضل استخدام طرق ‎‎getQueryInfo()، مثل ‎Revision::getQueryInfo()، بدلًا من كتابة استعلامك يدويًا). أثناء مدة الترحيل، يمكنك أيضًا استخدام فئة ActorMigration كي تحصل على معلومات الأسلوب أو الخانة التي تحترم أية إعدادات ‎$wgActorTableSchemaMigrationStage.

لو كنت من مطوري الأدوات وتستخدم Toolforge ، ربما توجد بعض الآثار على مستوى الأداءـ حتى لو لم تستخدم أي من الخانات المتأثرة استخدامًا مباشرًا. طالع wikitech:News/Actor storage changes on the Wiki Replicas لمزيد من المعلومات.