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 temizlenmeden önce tamamen taşınması gereken İngilizce Vikipedi revision
tablosunun büyük boyutu nedeniyle, geçiş birkaç MediaWiki sürümü için aşamalı olarak gerçekleştiriliyor.
MediaWiki 1.34'te bitmesi bekleniyor.
Geçiş her *_user
/*_user_text
çifti için actor değerinde bir tablo kaydı oluşturacak ve bu çiftleri oyuncu sıra kimliğine referans olarak değiştirecektir.
Aşağıdaki sütunlar taşınıyor:
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.