With Multi-Content-Revisions, MediaWiki allows different kinds of content to be stored on the same page. To enable WikibaseMediaInfo to store MediaInfo entities on file description pages in an extra slot, alongside the wikitext description, Wikibase needs to be changed to use the new page update (T174038) and revision retrieval (T174024) interfaces.
In concrete terms, this means:
- Change WikiPageEntityStore to use the new storage facilities in core (RevisionStore and PageUpdater) instead of Revision.
- WikiPageEntityRevisionLookup::loadEntity should now use RevisionStore. loadEntityBlob() should no longer be needed, since RevisionStore supports cross-wiki revision loading. However, this has not bee tested in production, and may require a RevisionStoreFactory to be introduced.
- WikiPageEntityMetaDataLookup also needs to be changed to make use of the new DB schema (ideally avoiding any low level access or knowledge of the schema). In particular, selectRevisionInformationById() can no longer directly access the text table.
- Define and pass through configuration that specifies in which slot of which namespace a given entity type resides (instead of just specifying the namespace).