Page MenuHomePhabricator

Stop using, deprecate, and then remove wfGetDB()
Open, Needs TriagePublic

Description

  • Simple cases should migrate to ICP:
    • $dbr = MediaWikiServices::getInstance()->getConnectionProvider()->getReplicaDatabase();
    • $dbw = MediaWikiServices::getInstance()->getConnectionProvider()->getPrimaryDatabase();
  • In rare cases where you use unusual features, you can use MediaWikiServices::getInstance()->getDBLoadBalancer()->getConnection( DB_PRIMARY ) etc. as a drop-in replacement, but this too will soon be deprecated (T330641)
  • Soft-deprecate (there's a "TODO" but no @deprecated, let alone migration documentation).
  • Replace uses in Wikimedia-deployed code
  • Hard-deprecate (in 1.42)
  • [Maybe?] Make mediawiki-codesniffer complain it and add an automatic TODO to use DI
  • Check there aren't too many remaining uses in the MediaWiki ecosystem
  • Remove in 1.44

As a super-critical function, we're going to want to wait at least two cycles after the hard deprecation before removal.

Related Objects

StatusSubtypeAssignedTask
OpenNone
Resolvedmatthiasmullie
ResolvedDringsim
ResolvedJdforrester-WMF
Resolvedsguebo_WMF
ResolvedDringsim
ResolvedJdforrester-WMF
ResolvedJdforrester-WMF
ResolvedDringsim
ResolvedJdforrester-WMF
ResolvedJdforrester-WMF
ResolvedJdforrester-WMF
ResolvedSD0001
ResolvedJdforrester-WMF
ResolvedDreamy_Jazz
ResolvedDreamy_Jazz
ResolvedDringsim
ResolvedJdforrester-WMF
Resolvedtaavi
ResolvedJdforrester-WMF
ResolvedCparle
ResolvedDbrant
ResolvedNone
Resolved01tonythomas
Resolvedpmiazga
Resolvedisarantopoulos
Resolveddmaza
ResolvedJdforrester-WMF
ResolvedLadsgroup
ResolvedJdforrester-WMF
Resolvedabi_
ResolvedWangombe
InvalidNone
ResolvedJdforrester-WMF
ResolvedLadsgroup
ResolvedJdforrester-WMF
Resolvedmatthiasmullie
ResolvedKrinkle
ResolvedSebastian_Berlin-WMSE

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

Change 1005443 had a related patch set uploaded (by Abijeet Patro; author: Abijeet Patro):

[mediawiki/extensions/TwnMainPage@master] Replace usage of wfGetDB()

https://gerrit.wikimedia.org/r/1005443

Change 1005444 had a related patch set uploaded (by Abijeet Patro; author: Abijeet Patro):

[mediawiki/extensions/CleanChanges@master] Replace usage of wfGetDB()

https://gerrit.wikimedia.org/r/1005444

Change 1005444 merged by jenkins-bot:

[mediawiki/extensions/CleanChanges@master] Replace usage of wfGetDB()

https://gerrit.wikimedia.org/r/1005444

Change 1005443 merged by jenkins-bot:

[mediawiki/extensions/TwnMainPage@master] Replace usage of wfGetDB()

https://gerrit.wikimedia.org/r/1005443

I might be wrong, but shouldn't the preferred replacement be MediaWikiServices::getInstance()->getConnectionProvider() instead of MediaWikiServices::getInstance()->getDBLoadBalancer()->getConnection()?

I might be wrong, but shouldn't the preferred replacement be MediaWikiServices::getInstance()->getConnectionProvider() instead of MediaWikiServices::getInstance()->getDBLoadBalancer()->getConnection()?

Yes, that's the value to what we've been changing most things. This task is a little old, and the move from LB to ICP is T330641: Switch from LoadBalancer::getConnection() to ICP::getReplicaDatabase/getPrimaryDatabase.

Change #1013565 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/core@master] Hard-deprecate wfGetDB(), deprecated in 1.39

https://gerrit.wikimedia.org/r/1013565

Change #1013681 had a related patch set uploaded (by 沈澄心; author: 沈澄心):

[mediawiki/extensions/HitCounters@master] Replace usage of wfGetDB()

https://gerrit.wikimedia.org/r/1013681

For replacing in wikimedia deployed code, it says CA/CN/DPL still have one or two left: https://codesearch.wmcloud.org/deployed/?q=wfGetDB if anyone is feeling to do it (I need to do some db maint right now)

For replacing in wikimedia deployed code, it says CA/CN/DPL still have one or two left: https://codesearch.wmcloud.org/deployed/?q=wfGetDB if anyone is feeling to do it (I need to do some db maint right now)

  • Written another patch for CA.
  • CN needs a branch (prod runs off wmf_deploy not master and no-one's apparently done a merge commit for six months).

Change #1013681 merged by jenkins-bot:

[mediawiki/extensions/HitCounters@master] Replace usage of wfGetDB()

https://gerrit.wikimedia.org/r/1013681

Merged the CA patch, now we have DPL (intersection) left and I will see what I can do about CN

Change #1013565 merged by jenkins-bot:

[mediawiki/core@master] Hard-deprecate wfGetDB(), deprecated in 1.39

https://gerrit.wikimedia.org/r/1013565

Change #1024882 had a related patch set uploaded (by Jack Phoenix; author: Jack Phoenix):

[mediawiki/extensions/MediaWikiChat@master] Technically speaking it's not using wfGetDB anymore

https://gerrit.wikimedia.org/r/1024882

Change #1024882 merged by jenkins-bot:

[mediawiki/extensions/MediaWikiChat@master] Technically speaking it's not using wfGetDB anymore

https://gerrit.wikimedia.org/r/1024882

Change #1029919 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/UserGroups@master] Replace usage of deprecated wfGetDB()

https://gerrit.wikimedia.org/r/1029919

Change #1029919 merged by jenkins-bot:

[mediawiki/extensions/UserGroups@master] Replace usage of deprecated wfGetDB()

https://gerrit.wikimedia.org/r/1029919

There is also a (misspelled) use of wfGetDb in SemanticWatchlist.

Umherirrender changed the task status from Open to Stalled.Sep 21 2024, 9:11 PM
Umherirrender removed a project: Patch-For-Review.
Umherirrender updated the task description. (Show Details)

Change #1077676 had a related patch set uploaded (by Umherirrender; author: Jack Phoenix):

[mediawiki/extensions/MediaWikiChat@REL1_42] Technically speaking it's not using wfGetDB anymore

https://gerrit.wikimedia.org/r/1077676

Change #1077676 merged by jenkins-bot:

[mediawiki/extensions/MediaWikiChat@REL1_42] Technically speaking it's not using wfGetDB anymore

https://gerrit.wikimedia.org/r/1077676

Umherirrender changed the task status from Stalled to Open.Oct 22 2024, 5:55 PM