1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-06-01 20:19:13 +02:00

[feature/migrations] Fix migrations installer, schema for schema_data.sql

PHPBB3-11318
This commit is contained in:
Nathan Guse 2013-01-10 22:45:26 -06:00
parent 74f4397451
commit 8baceacc36
3 changed files with 116 additions and 64 deletions

View File

@ -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);
}
}
}
}

View File

@ -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>&reg; Forum Software &copy; 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>&reg; Forum Software &copy; phpBB Group
</div>
</div>
</body>
</html>
<?php
garbage_collection();
exit_handler();
}

View File

@ -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, '');