X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2Ffilebackend%2FFileBackendGroup.php;h=f369f00e956ef3f5b8159c6dd5b5fe12a4d9eeba;hp=9e04d0963292d33233c35a679bf515dae77b3c40;hb=a775c6888bdecd03cea73f5540a8323b6dcbe78f;hpb=7512d9a4a132ec2c3a1178102008087866a9c36d diff --git a/includes/filebackend/FileBackendGroup.php b/includes/filebackend/FileBackendGroup.php index 9e04d09632..f369f00e95 100644 --- a/includes/filebackend/FileBackendGroup.php +++ b/includes/filebackend/FileBackendGroup.php @@ -123,8 +123,28 @@ class FileBackendGroup { } $class = $config['class']; - // @FIXME: ideally this would default to the DB domain (which includes the schema) - $config['domainId'] = $config['domainId'] ?? ( $config['wikiId'] ?? wfWikiID() ); + if ( isset( $config['domainId'] ) ) { + $domainId = $config['domainId']; + } elseif ( isset( $config['wikiId'] ) ) { + $domainId = $config['wikiId']; // b/c + } else { + // Only use the raw database/prefix for backwards compatibility + $ld = WikiMap::getCurrentWikiDbDomain(); + $domainId = strlen( $ld->getTablePrefix() ) + ? "{$ld->getDatabase()}-{$ld->getTablePrefix()}" + : $ld->getDatabase(); + // If the local wiki ID and local domain ID do not match, probably due to a + // non-default schema, issue a warning. A non-default schema indicates that + // it might be used to disambiguate different wikis. + $wikiId = WikiMap::getWikiIdFromDbDomain( $ld ); + if ( $ld->getSchema() !== null && $domainId !== $wikiId ) { + wfWarn( + "\$wgFileBackend entry '$name' should have 'domainId' set.\n" . + "Legacy default 'domainId' is '$domainId' but wiki ID is '$wikiId'." + ); + } + } + $config['domainId'] = $domainId; $config['readOnly'] = $config['readOnly'] ?? $readOnlyReason; unset( $config['class'] ); // backend won't need this