Fix SQLite $wgObjectCaches definition + b/c handling
authorMarius Hoch <hoo@online.de>
Mon, 19 Sep 2016 19:01:56 +0000 (21:01 +0200)
committerAaron Schulz <aschulz@wikimedia.org>
Mon, 19 Sep 2016 19:41:23 +0000 (19:41 +0000)
Follow-up to 47e816c69c197fec86c344256d81d7c8f781b880

Change-Id: Id94857a7c8726871cf826a34b5cf10cb465b7125

includes/installer/SqliteInstaller.php
includes/objectcache/ObjectCache.php

index 6024331..9bf87f4 100644 (file)
@@ -319,6 +319,7 @@ EOT;
                'type' => 'sqlite',
                'dbname' => 'wikicache',
                'tablePrefix' => '',
+               'dbDirectory' => \$wgSQLiteDataDir,
                'flags' => 0
        ]
 ];";
index 1e0013f..ea237aa 100644 (file)
@@ -183,8 +183,25 @@ class ObjectCache {
                        $params['reportDupes'] = isset( $params['reportDupes'] )
                                ? $params['reportDupes']
                                : true;
+                       // Do b/c logic for SqlBagOStuff
+                       if ( is_subclass_of( $class, SqlBagOStuff::class ) ) {
+                               if ( isset( $params['server'] ) && !isset( $params['servers'] ) ) {
+                                       $params['servers'] = [ $params['server'] ];
+                                       unset( $param['server'] );
+                               }
+                               // In the past it was not required to set 'dbDirectory' in $wgObjectCaches
+                               if ( isset( $params['servers'] ) ) {
+                                       foreach ( $params['servers'] as &$server ) {
+                                               if ( $server['type'] === 'sqlite' && !isset( $server['dbDirectory'] ) ) {
+                                                       $server['dbDirectory'] = MediaWikiServices::getInstance()
+                                                               ->getMainConfig()->get( 'SQLiteDataDir' );
+                                               }
+                                       }
+                               }
+                       }
+
                        // Do b/c logic for MemcachedBagOStuff
-                       if ( is_subclass_of( $class, 'MemcachedBagOStuff' ) ) {
+                       if ( is_subclass_of( $class, MemcachedBagOStuff::class ) ) {
                                if ( !isset( $params['servers'] ) ) {
                                        $params['servers'] = $GLOBALS['wgMemCachedServers'];
                                }