diff options
| -rw-r--r-- | phpBB/includes/db/migration/install.php | 43 | ||||
| -rw-r--r-- | phpBB/install/database_update.php | 94 | ||||
| -rw-r--r-- | phpBB/install/schemas/schema_data.sql | 43 |
3 files changed, 116 insertions, 64 deletions
diff --git a/phpBB/includes/db/migration/install.php b/phpBB/includes/db/migration/install.php index af2ba392b1..95f3a3b994 100644 --- a/phpBB/includes/db/migration/install.php +++ b/phpBB/includes/db/migration/install.php @@ -66,16 +66,16 @@ class phpbb_db_migration_install public function install(phpbb_db_driver $db, phpbb_db_tools $db_tools, $table_prefix, $version) { - $this->create_table($db_tools); + $this->create_table($db_tools, $table_prefix); $this->guess_installed_migrations($db, $table_prefix, $version); } - protected function create_table(phpbb_db_tools $db_tools) + protected function create_table(phpbb_db_tools $db_tools, $table_prefix) { - if (!$db_tools->sql_table_exists(MIGRATIONS_TABLE)) + if (!$db_tools->sql_table_exists($table_prefix . 'migrations')) { - $db_tools->sql_create_table(MIGRATIONS_TABLE, array( + $db_tools->sql_create_table($table_prefix . 'migrations', array( 'COLUMNS' => array( 'migration_name' => array('VCHAR', ''), 'migration_depends_on' => array('TEXT', ''), @@ -100,7 +100,7 @@ class phpbb_db_migration_install $installed = array(); foreach ($this->version_to_migration as $compare => $migration_list) { - if (version_compare($version, $compare, '<=')) + if (version_compare($version, $compare, '>=')) { // The migration should have effectively been installed already if (!is_array($migration_list)) @@ -110,18 +110,27 @@ class phpbb_db_migration_install foreach ($migration_list as $migration_name) { - $sql_ary = array( - 'migration_name' => $migration_name, - 'migration_depends_on' => $migration_name::depends_on(), - 'migration_schema_done' => 1, - 'migration_data_done' => 1, - 'migration_data_state' => '', - 'migration_start_time' => 0, - 'migration_end_time' => 0, - ); - $sql = 'INSERT INTO ' . $table_prefix . 'migrations ' . - $db->sql_build_array('INSERT', $sql_ary); - $db->sql_query($sql); + $sql = 'SELECT 1 FROM ' . $table_prefix . "migrations + WHERE migration_name = '" . $db->sql_escape($migration_name) . "'"; + $result = $db->sql_query($sql); + $row = $db->sql_fetchrow($result); + $db->sql_freeresult($result); + + if (!$row) + { + $sql_ary = array( + 'migration_name' => $migration_name, + 'migration_depends_on' => serialize($migration_name::depends_on()), + 'migration_schema_done' => 1, + 'migration_data_done' => 1, + 'migration_data_state' => '', + 'migration_start_time' => 0, + 'migration_end_time' => 0, + ); + $sql = 'INSERT INTO ' . $table_prefix . 'migrations ' . + $db->sql_build_array('INSERT', $sql_ary); + $db->sql_query($sql); + } } } } diff --git a/phpBB/install/database_update.php b/phpBB/install/database_update.php index 74aa072d22..f220a1f684 100644 --- a/phpBB/install/database_update.php +++ b/phpBB/install/database_update.php @@ -21,6 +21,52 @@ define('IN_INSTALL', true); $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './../'; $phpEx = substr(strrchr(__FILE__, '.'), 1); +if (!function_exists('phpbb_require_updated')) +{ + function phpbb_require_updated($path, $optional = false) + { + global $phpbb_root_path; + + $new_path = $phpbb_root_path . 'install/update/new/' . $path; + $old_path = $phpbb_root_path . $path; + + if (file_exists($new_path)) + { + require($new_path); + } + else if (!$optional || file_exists($old_path)) + { + require($old_path); + } + } +} + +function phpbb_end_update($cache) +{ + $cache->purge(); + +?> + </p> + </div> + </div> + <span class="corners-bottom"><span></span></span> + </div> + </div> + </div> + + <div id="page-footer"> + Powered by <a href="https://www.phpbb.com/">phpBB</a>® Forum Software © phpBB Group + </div> + </div> +</body> +</html> + +<?php + + garbage_collection(); + exit_handler(); +} + phpbb_require_updated('includes/startup.' . $phpEx); include($phpbb_root_path . 'config.' . $phpEx); @@ -149,7 +195,7 @@ header('Content-type: text/html; charset=UTF-8'); // Make sure migrations have been installed. If not, install migrations and guess what migrations have been installed $db_tools = $phpbb_container->get('dbal.tools'); -if (!$db_tools->sql_table_exists(MIGRATIONS_TABLE)) +if (!$db_tools->sql_table_exists($table_prefix . 'migrations')) { $migrations_installer = new phpbb_db_migration_install(); $migrations_installer->install($db, $db_tools, $table_prefix, $config['version']); @@ -196,49 +242,3 @@ if ($orig_version != $config['version']) echo $lang['DATABASE_UPDATE_COMPLETE']; phpbb_end_update($cache); - -if (!function_exists('phpbb_require_updated')) -{ - function phpbb_require_updated($path, $optional = false) - { - global $phpbb_root_path; - - $new_path = $phpbb_root_path . 'install/update/new/' . $path; - $old_path = $phpbb_root_path . $path; - - if (file_exists($new_path)) - { - require($new_path); - } - else if (!$optional || file_exists($old_path)) - { - require($old_path); - } - } -} - -function phpbb_end_update($cache) -{ - $cache->purge(); - -?> - </p> - </div> - </div> - <span class="corners-bottom"><span></span></span> - </div> - </div> - </div> - - <div id="page-footer"> - Powered by <a href="https://www.phpbb.com/">phpBB</a>® Forum Software © phpBB Group - </div> - </div> -</body> -</html> - -<?php - - garbage_collection(); - exit_handler(); -} diff --git a/phpBB/install/schemas/schema_data.sql b/phpBB/install/schemas/schema_data.sql index 7c1a7d40f5..d9e5c46e55 100644 --- a/phpBB/install/schemas/schema_data.sql +++ b/phpBB/install/schemas/schema_data.sql @@ -611,6 +611,49 @@ INSERT INTO phpbb_acl_groups (group_id, forum_id, auth_option_id, auth_role_id, # NEW MEMBERS on the queue INSERT INTO phpbb_acl_groups (group_id, forum_id, auth_option_id, auth_role_id, auth_setting) VALUES (7, 2, 0, 24, 0); +# Migrations +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_1', 'a:1:{i:0;s:33:"phpbb_db_migration_data_3_0_1_rc1";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_10', 'a:1:{i:0;s:34:"phpbb_db_migration_data_3_0_10_rc3";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_10_rc1', 'a:1:{i:0;s:29:"phpbb_db_migration_data_3_0_9";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_10_rc2', 'a:1:{i:0;s:34:"phpbb_db_migration_data_3_0_10_rc1";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_10_rc3', 'a:1:{i:0;s:34:"phpbb_db_migration_data_3_0_10_rc2";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_11', 'a:1:{i:0;s:34:"phpbb_db_migration_data_3_0_11_rc2";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_11_rc1', 'a:1:{i:0;s:30:"phpbb_db_migration_data_3_0_10";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_11_rc2', 'a:1:{i:0;s:34:"phpbb_db_migration_data_3_0_11_rc1";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_12_rc1', 'a:1:{i:0;s:30:"phpbb_db_migration_data_3_0_11";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_1_rc1', 'a:0:{}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_2', 'a:1:{i:0;s:33:"phpbb_db_migration_data_3_0_2_rc2";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_2_rc1', 'a:1:{i:0;s:29:"phpbb_db_migration_data_3_0_1";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_2_rc2', 'a:1:{i:0;s:33:"phpbb_db_migration_data_3_0_2_rc1";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_3', 'a:1:{i:0;s:33:"phpbb_db_migration_data_3_0_3_rc1";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_3_rc1', 'a:1:{i:0;s:29:"phpbb_db_migration_data_3_0_2";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_4', 'a:1:{i:0;s:33:"phpbb_db_migration_data_3_0_4_rc1";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_4_rc1', 'a:1:{i:0;s:29:"phpbb_db_migration_data_3_0_3";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_5', 'a:1:{i:0;s:38:"phpbb_db_migration_data_3_0_5_rc1part2";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_5_rc1', 'a:1:{i:0;s:29:"phpbb_db_migration_data_3_0_4";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_5_rc1part2', 'a:1:{i:0;s:33:"phpbb_db_migration_data_3_0_5_rc1";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_6', 'a:1:{i:0;s:33:"phpbb_db_migration_data_3_0_6_rc4";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_6_rc1', 'a:1:{i:0;s:29:"phpbb_db_migration_data_3_0_5";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_6_rc2', 'a:1:{i:0;s:33:"phpbb_db_migration_data_3_0_6_rc1";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_6_rc3', 'a:1:{i:0;s:33:"phpbb_db_migration_data_3_0_6_rc2";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_6_rc4', 'a:1:{i:0;s:33:"phpbb_db_migration_data_3_0_6_rc3";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_7', 'a:1:{i:0;s:33:"phpbb_db_migration_data_3_0_7_rc2";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_7_pl1', 'a:1:{i:0;s:29:"phpbb_db_migration_data_3_0_7";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_7_rc1', 'a:1:{i:0;s:29:"phpbb_db_migration_data_3_0_6";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_7_rc2', 'a:1:{i:0;s:33:"phpbb_db_migration_data_3_0_7_rc1";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_8', 'a:1:{i:0;s:33:"phpbb_db_migration_data_3_0_8_rc1";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_8_rc1', 'a:1:{i:0;s:33:"phpbb_db_migration_data_3_0_7_pl1";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_9', 'a:1:{i:0;s:33:"phpbb_db_migration_data_3_0_9_rc4";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_9_rc1', 'a:1:{i:0;s:29:"phpbb_db_migration_data_3_0_8";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_9_rc2', 'a:1:{i:0;s:33:"phpbb_db_migration_data_3_0_9_rc1";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_9_rc3', 'a:1:{i:0;s:33:"phpbb_db_migration_data_3_0_9_rc2";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_0_9_rc4', 'a:1:{i:0;s:33:"phpbb_db_migration_data_3_0_9_rc3";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_3_1_0_dev', 'a:4:{i:0;s:30:"phpbb_db_migration_data_3_0_11";i:1;s:34:"phpbb_db_migration_data_extensions";i:2;s:39:"phpbb_db_migration_data_style_update_p2";i:3;s:35:"phpbb_db_migration_data_timezone_p2";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_extensions', 'a:1:{i:0;s:30:"phpbb_db_migration_data_3_0_11";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_style_update_p1', 'a:1:{i:0;s:30:"phpbb_db_migration_data_3_0_11";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_style_update_p2', 'a:1:{i:0;s:39:"phpbb_db_migration_data_style_update_p1";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_timezone', 'a:1:{i:0;s:30:"phpbb_db_migration_data_3_0_11";}', 1, 1, '', 0, 0); +INSERT INTO phpbb_migrations (migration_name, migration_depends_on, migration_schema_done, migration_data_done, migration_data_state, migration_start_time, migration_end_time) VALUES('phpbb_db_migration_data_timezone_p2', 'a:1:{i:0;s:32:"phpbb_db_migration_data_timezone";}', 1, 1, '', 0, 0); # -- Demo Topic INSERT INTO phpbb_topics (topic_title, topic_poster, topic_time, topic_views, topic_replies, topic_replies_real, forum_id, topic_status, topic_type, topic_first_post_id, topic_first_poster_name, topic_first_poster_colour, topic_last_post_id, topic_last_poster_id, topic_last_poster_name, topic_last_poster_colour, topic_last_post_subject, topic_last_post_time, topic_last_view_time, poll_title) VALUES ('{L_TOPICS_TOPIC_TITLE}', 2, 972086460, 0, 0, 0, 2, 0, 0, 1, 'Admin', 'AA0000', 1, 2, 'Admin', 'AA0000', '{L_TOPICS_TOPIC_TITLE}', 972086460, 972086460, ''); |
