Aktör göçü
Tarihsel olarak, MediaWiki kullanıcılara yapılan kaynakları (örneğin bir revizyon veya görselin yazarı gibi) anonim düzenlemeler için [0, <IP adresi>] ile [<kimlik>, <ad>] çifti olarak saklamıştır.
Bu bir depolama alanı kaybıydı, vikilerde çok sayıda revizyon ile performans sorunlarına neden oldu ve kullanıcıları yeniden adlandırmayı ya da T133452 gibi yeni yazar türlerini tanıtmayı çok zorlaştırdı.
MediaWiki 1.31, aktörler kavramını (düzenleme veya günlük etkinliği gibi bir eylemde bulunan; şu anda kayıtlı bir kullanıcı veya adsız bir etkinlik) ve alanlarını içeren yeni bir veritabanı şemasına doğru geçiş sürecini tanıtıyor revision.rev_user ve revision.rev_user_text gibi, revision.rev_actor gibi alanlarla değiştirilir.
Değişiklikler temizlenemeden önce tamamen taşınması gereken İngilizce Vikipedi revision tablosunun çok büyük olması nedeniyle, taşıma işlemi kademeli olarak birkaç MediaWiki sürümü boyunca gerçekleştirildi.
MediaWiki 1.39'da tamamlandı.
Birleşim her farklı *_user / *_user_text çifti için bir actor tablo kaydı oluşturdu ve bu çiftleri aktör satır kimliğine bir referansla değiştirdi.
Aşağıdaki sütunlar taşındı:
| Tablo | Eski sütunlar | Yeni sütunlar |
|---|---|---|
| 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 |
Büyük Vikipedi vikilerinin son derece büyük revision tablolarında pahalı bir ALTER TABLE yapmaktan kaçınmak için, ilk önce rev_user ve rev_user_text, ilk olarak revision_actor_temp tabloya ve oradan revision kopyalanır.
revision_actor_temp tablo daha sonra bırakılacak.
Eğer bir viki sahibiyseniz, muhtemelen bir şey yapmanıza gerek yoktur, update.php çalıştırdığınızda geçiş otomatik olarak gerçekleşir.
Geçişin ne zaman yapıldığını kontrol etmek istiyorsanız, $wgActorTableSchemaMigrationStage ve migrateActors.php bakım komut dosyasına bakın.
Bir uzantı geliştiricisiyseniz ve uzantınız etkilenen alanların bazılarına doğrudan DB erişimi sağlıyorsa, sorgularınızı güncellemeniz gerekir (ve sorgunuzu el ile oluşturmak yerine ideal olarak Revision::getQueryInfo() gibi getQueryInfo() yöntemlerini kullanın).
Geçiş döneminde, herhangi bir $wgActorTableSchemaMigrationStage ayarına uyan şema/alan bilgisi almak için ActorMigration sınıfını da kullanabilirsiniz.
Toolforge kullanan bir araç geliştiricisiyseniz, etkilenen alanlardan herhangi birini doğrudan kullanmasanız bile performans etkileri olabilir. Ek bilgi için wikitech:Viki Kopyalarında Haberler/Aktör depolama değişiklikleri bölümüne bakın.