ترحيل الفاعل

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page Actor migration and the translation is 63% complete.
Other languages:
Deutsch • ‎English • ‎Esperanto • ‎Türkçe • ‎azərbaycanca • ‎español • ‎français • ‎italiano • ‎lietuvių • ‎polski • ‎português • ‎português do Brasil • ‎svenska • ‎čeština • ‎русский • ‎العربية • ‎हिन्दी • ‎日本語

كانت تخزن برمجيات ميدياويكي في السابق إشارات إلى المستخدمين (مثل مؤلف مراجعة أو صورة) في صفة زوجين ‎[<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. The revision_actor_temp table will be dropped afterwards.

If you are a wiki owner, you probably don't need to do anything, the migration will happen automatically when you run update.php. If you want to control when the migration happens, see $wgActorTableSchemaMigrationStage and the migrateActors.php maintenance script.

If you are an extension developer, and your extension does direct DB access to some of the affected fields, you'll need to update your queries (and ideally use the getQueryInfo() methods, such as Revision::getQueryInfo(), instead of manually constructing your query). During the migration period, you can also use the ActorMigration class to get schema/field information that respects any $wgActorTableSchemaMigrationStage settings.

If you are a tool developer using Toolforge , there might be performance implications, even if you don't use any of the affected fields directly. See wikitech:News/Actor storage changes on the Wiki Replicas for additional information.