diff options
Diffstat (limited to 'phpBB/develop/mysql_upgrader.php')
| -rw-r--r-- | phpBB/develop/mysql_upgrader.php | 212 | 
1 files changed, 0 insertions, 212 deletions
| diff --git a/phpBB/develop/mysql_upgrader.php b/phpBB/develop/mysql_upgrader.php deleted file mode 100644 index 276c010e84..0000000000 --- a/phpBB/develop/mysql_upgrader.php +++ /dev/null @@ -1,212 +0,0 @@ -<?php -/** -* -* This file is part of the phpBB Forum Software package. -* -* @copyright (c) phpBB Limited <https://www.phpbb.com> -* @license GNU General Public License, version 2 (GPL-2.0) -* -* For full copyright and license information, please see -* the docs/CREDITS.txt file. -* -*/ - -/** -* This file creates SQL statements to upgrade phpBB on MySQL 3.x/4.0.x to 4.1.x/5.x -*/ - -// -// Security message: -// -// This script is potentially dangerous. -// Remove or comment the next line (die(".... ) to enable this script. -// Do NOT FORGET to either remove this script or disable it after you have used it. -// -die("Please read the first lines of this script for instructions on how to enable it"); - -define('IN_PHPBB', true); -$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './'; -$phpEx = substr(strrchr(__FILE__, '.'), 1); -include($phpbb_root_path . 'common.' . $phpEx); - -$prefix = $table_prefix; - -$newline = "\n"; - -if (PHP_SAPI !== 'cli') -{ -	$newline = '<br>'; -} - -$sql = 'DESCRIBE ' . POSTS_TABLE . ' post_text'; -$result = $db->sql_query($sql); - -$row = $db->sql_fetchrow($result); - -$db->sql_freeresult($result); - -$mysql_indexer = $drop_index = false; - -if (strtolower($row['Type']) === 'mediumtext') -{ -	$mysql_indexer = true; -} - -if (strtolower($row['Key']) === 'mul') -{ -	$drop_index = true; -} - -echo "USE $dbname;$newline$newline"; - - -@set_time_limit(0); - -$finder = new \phpbb\finder(new \phpbb\filesystem\filesystem(), $phpbb_root_path); -$classes = $finder->core_path('phpbb/') -	->directory('/db/migration/data') -	->get_classes(); - -$factory = new \phpbb\db\tools\factory(); -$db_tools = $factory->get($db, true); - -$schema_generator = new \phpbb\db\migration\schema_generator($classes, $config, $db, $db_tools, $phpbb_root_path, $phpEx, $table_prefix); -$schema_data = $schema_generator->get_schema(); -$dbms_type_map = \phpbb\db\tools\tools::get_dbms_type_map(); - -foreach ($schema_data as $table_name => $table_data) -{ -	$table_name = str_replace('phpbb_', $prefix, $table_name); -	// Write comment about table -	echo "# Table: '{$table_name}'$newline"; - -	// Create Table statement -	$generator = $textimage = false; - -	// Do we need to DROP a fulltext index before we alter the table? -	if ($table_name == ($prefix . 'posts') && $drop_index) -	{ -		echo "ALTER TABLE {$table_name}{$newline}"; -		echo "DROP INDEX post_text,{$newline}DROP INDEX post_subject,{$newline}DROP INDEX post_content;{$newline}{$newline}"; -	} - -	$line = "ALTER TABLE {$table_name} $newline"; - -	// Table specific so we don't get overlap -	$modded_array = array(); - -	// Write columns one by one... -	foreach ($table_data['COLUMNS'] as $column_name => $column_data) -	{ -		// Get type -		if (strpos($column_data[0], ':') !== false) -		{ -			list($orig_column_type, $column_length) = explode(':', $column_data[0]); -			$column_type = sprintf($dbms_type_map['mysql_41'][$orig_column_type . ':'], $column_length); - -			if (isset($dbms_type_map['mysql_40'][$orig_column_type . ':']['limit']) && -				isset($dbms_type_map['mysql_40'][$orig_column_type . ':']['limit'][0])) -			{ -				switch ($dbms_type_map['mysql_40'][$orig_column_type . ':']['limit'][0]) -				{ -					case 'mult': -						if (($column_length * $dbms_type_map['mysql_40'][$orig_column_type . ':']['limit'][1]) > $dbms_type_map['mysql_40'][$orig_column_type . ':']['limit'][2]) -						{ -							$modded_array[$column_name] = $column_type; -						} -					break; -				} -			} - -			$orig_column_type .= ':'; -		} -		else -		{ -			$orig_column_type = $column_data[0]; -			$other_column_type = $dbms_type_map['mysql_40'][$column_data[0]]; -			if ($other_column_type == 'text' || $other_column_type == 'blob') -			{ -				$modded_array[$column_name] = $column_type; -			} -			$column_type = $dbms_type_map['mysql_41'][$column_data[0]]; -		} - -		// Adjust default value if db-dependent specified -		if (is_array($column_data[1])) -		{ -			$column_data[1] = (isset($column_data[1][$dbms])) ? $column_data[1][$dbms] : $column_data[1]['default']; -		} - -		$line .= "\tMODIFY {$column_name} {$column_type} "; - -		// For hexadecimal values do not use single quotes -		if (!is_null($column_data[1]) && substr($column_type, -4) !== 'text' && substr($column_type, -4) !== 'blob') -		{ -			$line .= (strpos($column_data[1], '0x') === 0) ? "DEFAULT {$column_data[1]} " : "DEFAULT '{$column_data[1]}' "; -		} -		$line .= 'NOT NULL'; - -		if (isset($column_data[2])) -		{ -			if ($column_data[2] == 'auto_increment') -			{ -				$line .= ' auto_increment'; -			} -			else if ($column_data[2] == 'true_sort') -			{ -				$line .= ' COLLATE utf8_unicode_ci'; -			} -			else if ($column_data[2] == 'no_sort') -			{ -				$line .= ' COLLATE utf8_bin'; -			} -		} -		else if (preg_match('/(?:var)?char|(?:medium)?text/i', $column_type)) -		{ -			$line .= ' COLLATE utf8_bin'; -		} - -		$line .= ",$newline"; -	} - -	// Write Keys -	if (isset($table_data['KEYS'])) -	{ -		foreach ($table_data['KEYS'] as $key_name => $key_data) -		{ -			$temp = ''; -			if (!is_array($key_data[1])) -			{ -				$key_data[1] = array($key_data[1]); -			} - -			$temp .= ($key_data[0] == 'INDEX') ? "\tADD KEY" : ''; -			$temp .= ($key_data[0] == 'UNIQUE') ? "\tADD UNIQUE" : ''; -			$repair = false; -			foreach ($key_data[1] as $key => $col_name) -			{ -				if (isset($modded_array[$col_name])) -				{ -					$repair = true; -				} -			} -			if ($repair) -			{ -				$line .= "\tDROP INDEX " . $key_name . ",$newline"; -				$line .= $temp; -				$line .= ' ' . $key_name . ' (' . implode(', ', $key_data[1]) . "),$newline"; -			} -		} -	} - -	//$line .= "\tCONVERT TO CHARACTER SET `utf8`$newline"; -	$line .= "\tDEFAULT CHARSET=utf8 COLLATE=utf8_bin;$newline$newline"; - -	echo $line . "$newline"; - -	// Do we now need to re-add the fulltext index? ;) -	if ($table_name == ($prefix . 'posts') && $drop_index) -	{ -		echo "ALTER TABLE $table_name ADD FULLTEXT (post_subject), ADD FULLTEXT (post_text), ADD FULLTEXT post_content (post_subject, post_text);{$newline}"; -	} -} | 
