mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 06:08:52 +00:00
Fix missing group_id in upgrade, move fulltext search indexing to last operation ... it failing won't result in a half upgraded board
git-svn-id: file:///svn/phpbb/branches/phpBB-2_0_0@2732 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
parent
0bb1c8b13a
commit
337dd98fd4
1 changed files with 80 additions and 86 deletions
|
@ -812,24 +812,16 @@ if ( !empty($next) )
|
||||||
$per_pct = ceil( $db->sql_numrows($result) / 40 );
|
$per_pct = ceil( $db->sql_numrows($result) / 40 );
|
||||||
$inc = 0;
|
$inc = 0;
|
||||||
|
|
||||||
|
$group_id = 1;
|
||||||
while( $row = $db->sql_fetchrow($result) )
|
while( $row = $db->sql_fetchrow($result) )
|
||||||
{
|
{
|
||||||
$sql = "INSERT INTO " . GROUPS_TABLE . " (group_name, group_description, group_single_user)
|
$sql = "INSERT INTO " . GROUPS_TABLE . " (group_id, group_name, group_description, group_single_user)
|
||||||
VALUES ('" . addslashes($row['username']) . "', 'Personal User', 1)";
|
VALUES ($group_id, '" . addslashes($row['username']) . "', 'Personal User', 1)";
|
||||||
query($sql, "Wasn't able to insert user ".$row['user_id']." into table ".GROUPS_TABLE);
|
query($sql, "Wasn't able to insert user ".$row['user_id']." into table ".GROUPS_TABLE);
|
||||||
|
|
||||||
$group_id = $db->sql_nextid();
|
|
||||||
|
|
||||||
if ( $group_id != 0 )
|
|
||||||
{
|
|
||||||
$sql = "INSERT INTO " . USER_GROUP_TABLE . " (group_id, user_id, user_pending)
|
$sql = "INSERT INTO " . USER_GROUP_TABLE . " (group_id, user_id, user_pending)
|
||||||
VALUES ($group_id, " . $row['user_id'] . ", 0)";
|
VALUES ($group_id, " . $row['user_id'] . ", 0)";
|
||||||
query($sql, "Wasn't able to insert user ".$row['user_id']." into table ".USER_GROUP_TABLE);
|
query($sql, "Wasn't able to insert user ".$row['user_id']." into table ".USER_GROUP_TABLE);
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print "Couldn't get insert ID for " . GROUPS_TABLE . " table<br>\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( is_int($row['user_regdate']) )
|
if ( is_int($row['user_regdate']) )
|
||||||
{
|
{
|
||||||
|
@ -837,6 +829,8 @@ if ( !empty($next) )
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$group_id++;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Nathan's bbcode2 conversion
|
// Nathan's bbcode2 conversion
|
||||||
//
|
//
|
||||||
|
@ -1630,77 +1624,6 @@ if ( !empty($next) )
|
||||||
}
|
}
|
||||||
|
|
||||||
print " <span class=\"ok\"><b>OK</b></span><br />\n";
|
print " <span class=\"ok\"><b>OK</b></span><br />\n";
|
||||||
end_step('fulltext_search_indexing');
|
|
||||||
|
|
||||||
case 'fulltext_search_indexing':
|
|
||||||
//
|
|
||||||
// Generate search word list
|
|
||||||
//
|
|
||||||
// Fetch a batch of posts_text entries
|
|
||||||
//
|
|
||||||
$sql = "SELECT COUNT(*) as total, MAX(post_id) as max_post_id
|
|
||||||
FROM " . POSTS_TEXT_TABLE;
|
|
||||||
$result = query($sql, "Couldn't get post count totals");
|
|
||||||
|
|
||||||
$max_post_id = $db->sql_fetchrow($result);
|
|
||||||
|
|
||||||
$totalposts = $max_post_id['total'];
|
|
||||||
$max_post_id = $max_post_id['max_post_id'];
|
|
||||||
$per_percent = round(( $totalposts / 500 ) * 10);
|
|
||||||
|
|
||||||
$postcounter = ( !isset($HTTP_GET_VARS['batchstart']) ) ? 0 : $HTTP_GET_VARS['batchstart'];
|
|
||||||
|
|
||||||
$batchsize = 150; // Process this many posts per loop
|
|
||||||
$batchcount = 0;
|
|
||||||
$total_percent = 0;
|
|
||||||
|
|
||||||
for(;$postcounter <= $max_post_id; $postcounter += $batchsize)
|
|
||||||
{
|
|
||||||
$batchstart = $postcounter + 1;
|
|
||||||
$batchend = $postcounter + $batchsize;
|
|
||||||
$batchcount++;
|
|
||||||
|
|
||||||
print " * Fulltext Indexing ( $batchstart to $batchend ) :: ";
|
|
||||||
flush();
|
|
||||||
|
|
||||||
$sql = "SELECT *
|
|
||||||
FROM " . POSTS_TEXT_TABLE ."
|
|
||||||
WHERE post_id
|
|
||||||
BETWEEN $batchstart
|
|
||||||
AND $batchend";
|
|
||||||
$posts_result = query($sql, "Couldn't obtain post_text");
|
|
||||||
|
|
||||||
$per_pct = ceil( $db->sql_numrows($posts_result) / 40 );
|
|
||||||
$inc = 0;
|
|
||||||
|
|
||||||
if ( $row = $db->sql_fetchrow($posts_result) )
|
|
||||||
{
|
|
||||||
do
|
|
||||||
{
|
|
||||||
add_search_words($row['post_id'], $row['post_text'], $row['post_subject']);
|
|
||||||
|
|
||||||
$inc++;
|
|
||||||
if ( $inc == $per_pct )
|
|
||||||
{
|
|
||||||
print ".";
|
|
||||||
flush();
|
|
||||||
$inc = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
while( $row = $db->sql_fetchrow($posts_result) );
|
|
||||||
}
|
|
||||||
|
|
||||||
$db->sql_freeresult($posts_result);
|
|
||||||
|
|
||||||
// Remove common words after the first 2 batches and after every 4th batch after that.
|
|
||||||
if ( $batchcount % 4 == 3 )
|
|
||||||
{
|
|
||||||
remove_common('global', 0.4);
|
|
||||||
}
|
|
||||||
|
|
||||||
print " <span class=\"ok\"><b>OK</b></span><br />\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
end_step('update_topics');
|
end_step('update_topics');
|
||||||
|
|
||||||
case 'update_topics':
|
case 'update_topics':
|
||||||
|
@ -1930,6 +1853,77 @@ if ( !empty($next) )
|
||||||
print "<span class=\"ok\"><b>OK</b></span><br />\n";
|
print "<span class=\"ok\"><b>OK</b></span><br />\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
end_step('fulltext_search_indexing');
|
||||||
|
|
||||||
|
case 'fulltext_search_indexing':
|
||||||
|
//
|
||||||
|
// Generate search word list
|
||||||
|
//
|
||||||
|
// Fetch a batch of posts_text entries
|
||||||
|
//
|
||||||
|
$sql = "SELECT COUNT(*) as total, MAX(post_id) as max_post_id
|
||||||
|
FROM " . POSTS_TEXT_TABLE;
|
||||||
|
$result = query($sql, "Couldn't get post count totals");
|
||||||
|
|
||||||
|
$max_post_id = $db->sql_fetchrow($result);
|
||||||
|
|
||||||
|
$totalposts = $max_post_id['total'];
|
||||||
|
$max_post_id = $max_post_id['max_post_id'];
|
||||||
|
$per_percent = round(( $totalposts / 500 ) * 10);
|
||||||
|
|
||||||
|
$postcounter = ( !isset($HTTP_GET_VARS['batchstart']) ) ? 0 : $HTTP_GET_VARS['batchstart'];
|
||||||
|
|
||||||
|
$batchsize = 150; // Process this many posts per loop
|
||||||
|
$batchcount = 0;
|
||||||
|
$total_percent = 0;
|
||||||
|
|
||||||
|
for(;$postcounter <= $max_post_id; $postcounter += $batchsize)
|
||||||
|
{
|
||||||
|
$batchstart = $postcounter + 1;
|
||||||
|
$batchend = $postcounter + $batchsize;
|
||||||
|
$batchcount++;
|
||||||
|
|
||||||
|
print " * Fulltext Indexing ( $batchstart to $batchend ) :: ";
|
||||||
|
flush();
|
||||||
|
|
||||||
|
$sql = "SELECT *
|
||||||
|
FROM " . POSTS_TEXT_TABLE ."
|
||||||
|
WHERE post_id
|
||||||
|
BETWEEN $batchstart
|
||||||
|
AND $batchend";
|
||||||
|
$posts_result = query($sql, "Couldn't obtain post_text");
|
||||||
|
|
||||||
|
$per_pct = ceil( $db->sql_numrows($posts_result) / 40 );
|
||||||
|
$inc = 0;
|
||||||
|
|
||||||
|
if ( $row = $db->sql_fetchrow($posts_result) )
|
||||||
|
{
|
||||||
|
do
|
||||||
|
{
|
||||||
|
add_search_words($row['post_id'], $row['post_text'], $row['post_subject']);
|
||||||
|
|
||||||
|
$inc++;
|
||||||
|
if ( $inc == $per_pct )
|
||||||
|
{
|
||||||
|
print ".";
|
||||||
|
flush();
|
||||||
|
$inc = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while( $row = $db->sql_fetchrow($posts_result) );
|
||||||
|
}
|
||||||
|
|
||||||
|
$db->sql_freeresult($posts_result);
|
||||||
|
|
||||||
|
// Remove common words after the first 2 batches and after every 4th batch after that.
|
||||||
|
if ( $batchcount % 4 == 3 )
|
||||||
|
{
|
||||||
|
remove_common('global', 0.4);
|
||||||
|
}
|
||||||
|
|
||||||
|
print " <span class=\"ok\"><b>OK</b></span><br />\n";
|
||||||
|
}
|
||||||
|
|
||||||
echo "\n<br /><br />\n\n<font size=\"+3\"><b>UPGRADE COMPLETED</b></font><br />\n";
|
echo "\n<br /><br />\n\n<font size=\"+3\"><b>UPGRADE COMPLETED</b></font><br />\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue