diff options
author | Joas Schilling <nickvergessen@gmx.de> | 2014-08-07 16:49:37 +0200 |
---|---|---|
committer | Joas Schilling <nickvergessen@gmx.de> | 2014-08-07 16:49:37 +0200 |
commit | 9b36b5283cc29f59428206726f666554b0e0a358 (patch) | |
tree | 7e253d5bf14e8cfbc16b58733e2d55c8c6f0f224 /phpBB | |
parent | ab8a197e92c491ac37f8ffe2fff1f7c6c42167b6 (diff) | |
parent | 2b3e15cf64fdc3f3f1fd4067321c92d4a20c1dd9 (diff) | |
download | forums-9b36b5283cc29f59428206726f666554b0e0a358.tar forums-9b36b5283cc29f59428206726f666554b0e0a358.tar.gz forums-9b36b5283cc29f59428206726f666554b0e0a358.tar.bz2 forums-9b36b5283cc29f59428206726f666554b0e0a358.tar.xz forums-9b36b5283cc29f59428206726f666554b0e0a358.zip |
Merge pull request #2761 from Nicofuma/ticket/12873
[ticket/12873] Test the correct identifier in \phpbb\db\tools
* Nicofuma/ticket/12873:
[ticket/12873] Add migration to rename the index
[ticket/12873] Don not touch the existing migrations
[ticket/12873] Test the good identifier in \phpbb\db\tools
Diffstat (limited to 'phpBB')
-rw-r--r-- | phpBB/install/schemas/schema.json | 16 | ||||
-rw-r--r-- | phpBB/phpbb/db/migration/data/v310/rename_too_long_indexes.php | 38 | ||||
-rw-r--r-- | phpBB/phpbb/db/tools.php | 2 |
3 files changed, 47 insertions, 9 deletions
diff --git a/phpBB/install/schemas/schema.json b/phpBB/install/schemas/schema.json index a3ffd923a1..1a9b9b62b7 100644 --- a/phpBB/install/schemas/schema.json +++ b/phpBB/install/schemas/schema.json @@ -2397,14 +2397,6 @@ ] }, "KEYS": { - "unq_mtch": [ - "UNIQUE", - [ - "word_id", - "post_id", - "title_match" - ] - ], "word_id": [ "INDEX", "word_id" @@ -2412,6 +2404,14 @@ "post_id": [ "INDEX", "post_id" + ], + "un_mtch": [ + "UNIQUE", + [ + "word_id", + "post_id", + "title_match" + ] ] } }, diff --git a/phpBB/phpbb/db/migration/data/v310/rename_too_long_indexes.php b/phpBB/phpbb/db/migration/data/v310/rename_too_long_indexes.php new file mode 100644 index 0000000000..8d2a15d8ea --- /dev/null +++ b/phpBB/phpbb/db/migration/data/v310/rename_too_long_indexes.php @@ -0,0 +1,38 @@ +<?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. +* +*/ + +namespace phpbb\db\migration\data\v310; + +class rename_too_long_indexes extends \phpbb\db\migration\migration +{ + static public function depends_on() + { + return array('\phpbb\db\migration\data\v30x\release_3_0_0'); + } + + public function update_schema() + { + return array( + 'drop_keys' => array( + $this->table_prefix . 'search_wordmatch' => array( + 'unq_mtch', + ), + ), + 'add_unique_index' => array( + $this->table_prefix . 'search_wordmatch' => array( + 'un_mtch' => array('word_id', 'post_id', 'title_match'), + ), + ), + ); + } +} diff --git a/phpBB/phpbb/db/tools.php b/phpBB/phpbb/db/tools.php index ae0c695aa2..5d93eb8246 100644 --- a/phpBB/phpbb/db/tools.php +++ b/phpBB/phpbb/db/tools.php @@ -2104,7 +2104,7 @@ class tools $statements = array(); $table_prefix = substr(CONFIG_TABLE, 0, -6); // strlen(config) - if (strlen($table_name . $index_name) - strlen($table_prefix) > 24) + if (strlen($table_name . '_' . $index_name) - strlen($table_prefix) > 24) { $max_length = strlen($table_prefix) + 24; trigger_error("Index name '{$table_name}_$index_name' on table '$table_name' is too long. The maximum is $max_length characters.", E_USER_ERROR); |