* Helper class for making a copy of the database, mostly for unit testing.
*
* Copyright © 2010 Chad Horohoe <chad@anyonecanedit.org>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.org/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*/
class CloneDatabase {
-
- /**
- * Table prefix for cloning
- * @var String
- */
+ /** @var string Table prefix for cloning */
private $newTablePrefix = '';
- /**
- * Current table prefix
- * @var String
- */
+ /** @var string Current table prefix */
private $oldTablePrefix = '';
- /**
- * List of tables to be cloned
- * @var Array
- */
+ /** @var array List of tables to be cloned */
private $tablesToClone = array();
- /**
- * Should we DROP tables containing the new names?
- * @var Bool
- */
+ /** @var bool Should we DROP tables containing the new names? */
private $dropCurrentTables = true;
- /**
- * Whether to use temporary tables or not
- * @var Bool
- */
+ /** @var bool Whether to use temporary tables or not */
private $useTemporaryTables = true;
/**
* Constructor
*
- * @param $db DatabaseBase A database subclass
- * @param $tablesToClone Array An array of tables to clone, unprefixed
- * @param $newTablePrefix String Prefix to assign to the tables
- * @param $oldTablePrefix String Prefix on current tables, if not $wgDBprefix
- * @param $dropCurrentTables bool
+ * @param DatabaseBase $db A database subclass
+ * @param array $tablesToClone An array of tables to clone, unprefixed
+ * @param string $newTablePrefix Prefix to assign to the tables
+ * @param string $oldTablePrefix Prefix on current tables, if not $wgDBprefix
+ * @param bool $dropCurrentTables
*/
public function __construct( DatabaseBase $db, array $tablesToClone,
- $newTablePrefix, $oldTablePrefix = '', $dropCurrentTables = true )
- {
+ $newTablePrefix, $oldTablePrefix = '', $dropCurrentTables = true
+ ) {
$this->db = $db;
$this->tablesToClone = $tablesToClone;
$this->newTablePrefix = $newTablePrefix;
/**
* Set whether to use temporary tables or not
- * @param $u Bool Use temporary tables when cloning the structure
+ * @param bool $u Use temporary tables when cloning the structure
*/
public function useTemporaryTables( $u = true ) {
$this->useTemporaryTables = $u;
* Clone the table structure
*/
public function cloneTableStructure() {
- foreach( $this->tablesToClone as $tbl ) {
+ foreach ( $this->tablesToClone as $tbl ) {
# Clean up from previous aborted run. So that table escaping
# works correctly across DB engines, we need to change the pre-
# fix back and forth so tableName() works right.
self::changePrefix( $this->newTablePrefix );
$newTableName = $this->db->tableName( $tbl, 'raw' );
- if( $this->dropCurrentTables && !in_array( $this->db->getType(), array( 'postgres', 'oracle' ) ) ) {
+ if ( $this->dropCurrentTables
+ && !in_array( $this->db->getType(), array( 'postgres', 'oracle' ) )
+ ) {
$this->db->dropTable( $tbl, __METHOD__ );
- wfDebug( __METHOD__ . " dropping {$newTableName}\n", true );
+ wfDebug( __METHOD__ . " dropping {$newTableName}\n" );
//Dropping the oldTable because the prefix was changed
}
# Create new table
- wfDebug( __METHOD__ . " duplicating $oldTableName to $newTableName\n", true );
+ wfDebug( __METHOD__ . " duplicating $oldTableName to $newTableName\n" );
$this->db->duplicateTableStructure( $oldTableName, $newTableName, $this->useTemporaryTables );
}
}
/**
* Change the prefix back to the original.
- * @param $dropTables bool Optionally drop the tables we created
+ * @param bool $dropTables Optionally drop the tables we created
*/
public function destroy( $dropTables = false ) {
- if( $dropTables ) {
+ if ( $dropTables ) {
self::changePrefix( $this->newTablePrefix );
- foreach( $this->tablesToClone as $tbl ) {
+ foreach ( $this->tablesToClone as $tbl ) {
$this->db->dropTable( $tbl );
}
}
/**
* Change the table prefix on all open DB connections/
*
- * @param $prefix
+ * @param string $prefix
* @return void
*/
public static function changePrefix( $prefix ) {
}
/**
- * @param $lb LoadBalancer
- * @param $prefix
+ * @param LoadBalancer $lb
+ * @param string $prefix
* @return void
*/
public static function changeLBPrefix( $lb, $prefix ) {
}
/**
- * @param $db DatabaseBase
- * @param $prefix
+ * @param DatabaseBase $db
+ * @param string $prefix
* @return void
*/
public static function changeDBPrefix( $db, $prefix ) {