Stop using $wgProfileToDatabase

Was not completely removed and the remaining bits were mostly
broken. $wgProfiler['output'] = 'db' is the proper way.

Fixes T75917
Change-Id: I36565e2372db2ed49b219cf533ec433e8111c52f
This commit is contained in:
Chad Horohoe 2014-12-03 10:36:12 -08:00
parent 2e2958d6d9
commit dbca12bf93
6 changed files with 42 additions and 25 deletions

View file

@ -34,7 +34,7 @@ Primary scripts:
To save the profiling information in the database (required to use this
script), you have to modify StartProfiler.php to use the Profiler class and
not the stub profiler which is enabled by default.
You will also need to set $wgProfileToDatabase to true in LocalSettings.php
You will also need to set $wgProfiler['output'] to 'db' in LocalSettings.php
to force the profiler to save the informations in the database and apply the
maintenance/archives/patch-profiling.sql patch to the database.

View file

@ -1058,6 +1058,31 @@ abstract class DatabaseUpdater {
}
}
/**
* Enable profiling table when it's turned on
*/
protected function doEnableProfiling() {
global $wgProfiler;
if ( !$this->doTable( 'profiling' ) ) {
return true;
}
$profileToDb = false;
if ( isset( $wgProfiler['output'] ) ) {
$out = $wgProfiler['output'];
if ( $out === 'db' ) {
$profileToDb = true;
} elseif( is_array( $out ) && in_array( 'db', $out ) ) {
$profileToDb = true;
}
}
if ( $profileToDb && !$this->db->tableExists( 'profiling', __METHOD__ ) ) {
$this->applyPatch( 'patch-profiling.sql', false, 'Add profiling table' );
}
}
/**
* Rebuilds the localisation cache
*/

View file

@ -924,18 +924,6 @@ class MysqlUpdater extends DatabaseUpdater {
}
}
protected function doEnableProfiling() {
global $wgProfileToDatabase;
if ( !$this->doTable( 'profiling' ) ) {
return true;
}
if ( $wgProfileToDatabase === true && !$this->db->tableExists( 'profiling', __METHOD__ ) ) {
$this->applyPatch( 'patch-profiling.sql', false, 'Add profiling table' );
}
}
protected function doMaybeProfilingMemoryUpdate() {
if ( !$this->doTable( 'profiling' ) ) {
return true;

View file

@ -168,11 +168,4 @@ class SqliteUpdater extends DatabaseUpdater {
$this->output( "...fulltext search table appears to be in order.\n" );
}
}
protected function doEnableProfiling() {
global $wgProfileToDatabase;
if ( $wgProfileToDatabase === true && !$this->db->tableExists( 'profiling', __METHOD__ ) ) {
$this->applyPatch( 'patch-profiling.sql', false, 'Add profiling table' );
}
}
}

View file

@ -27,7 +27,7 @@
ini_set( 'zlib.output_compression', 'off' );
$wgEnableProfileInfo = $wgProfileToDatabase = false;
$wgEnableProfileInfo = false;
require __DIR__ . '/includes/WebStart.php';
header( 'Content-Type: text/html; charset=utf-8' );
@ -149,8 +149,8 @@ $dbr = wfGetDB( DB_SLAVE );
if ( !$dbr->tableExists( 'profiling' ) ) {
echo '<p>No <code>profiling</code> table exists, so we can\'t show you anything.</p>'
. '<p>If you want to log profiling data, enable <code>$wgProfileToDatabase</code>'
. ' in your LocalSettings.php and run <code>maintenance/update.php</code> to'
. '<p>If you want to log profiling data, enable <code>$wgProfiler[\'output\'] = \'db\'</code>'
. ' in your StartProfiler.php and run <code>maintenance/update.php</code> to'
. ' create the profiling table.'
. '</body></html>';
exit( 1 );

View file

@ -272,7 +272,7 @@ class DatabaseSqliteTest extends MediaWikiTestCase {
* @todo Currently only checks list of tables
*/
public function testUpgrades() {
global $IP, $wgVersion, $wgProfileToDatabase;
global $IP, $wgVersion, $wgProfiler;
// Versions tested
$versions = array(
@ -291,7 +291,18 @@ class DatabaseSqliteTest extends MediaWikiTestCase {
$currentDB = new DatabaseSqliteStandalone( ':memory:' );
$currentDB->sourceFile( "$IP/maintenance/tables.sql" );
if ( $wgProfileToDatabase ) {
$profileToDb = false;
if ( isset( $wgProfiler['output'] ) ) {
$out = $wgProfiler['output'];
if ( $out === 'db' ) {
$profileToDb = true;
} elseif( is_array( $out ) && in_array( 'db', $out ) ) {
$profileToDb = true;
}
}
if ( $profileToDb ) {
$currentDB->sourceFile( "$IP/maintenance/sqlite/archives/patch-profiling.sql" );
}
$currentTables = $this->getTables( $currentDB );