aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/develop/merge_attachment_tables.php
blob: dd6e12172e3f85f929e98e6c8625dce25c77213d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?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.
*
*/

//
// 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");

$db = $dbhost = $dbuser = $dbpasswd = $dbport = $dbname = '';

define('IN_PHPBB', 1);
define('ANONYMOUS', 1);
$phpEx = substr(strrchr(__FILE__, '.'), 1);
$phpbb_root_path='./../';
include($phpbb_root_path . 'config.'.$phpEx);
require($phpbb_root_path . 'includes/acm/acm_' . $acm_type . '.'.$phpEx);
require($phpbb_root_path . 'includes/db/' . $dbms . '.'.$phpEx);
include($phpbb_root_path . 'includes/functions.'.$phpEx);

$cache		= new acm();
$db			= new sql_db();

// Connect to DB
$db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false);

// Rename the attachments table... 
$sql = "RENAME TABLE {$table_prefix}attachments TO {$table_prefix}attach_temp";
$db->sql_query($sql);

$sql = "CREATE TABLE {$table_prefix}attachments 
	SELECT d.*, a.post_id, a.user_id_from as poster_id, p.topic_id
		FROM {$table_prefix}attach_desc d, {$table_prefix}attach_temp a, {$table_prefix}posts p
		WHERE a.attach_id = d.attach_id
			AND a.post_id = p.post_id";
$db->sql_query($sql);

switch ($db->get_sql_layer())
{
	case 'mysql':
	case 'mysql4':
		$sql = 'ALTER TABLE ' . $table_prefix . 'attachments 
			ADD PRIMARY KEY (attach_id), 
			ADD INDEX filetime (filetime),
			ADD INDEX post_id (post_id),
			ADD INDEX poster_id (poster_id),
			ADD INDEX physical_filename (physical_filename(10)),
			ADD INDEX filesize (filesize),
			ADD INDEX topic_id (topic_id),
			MODIFY COLUMN attach_id mediumint(8) UNSIGNED NOT NULL auto_increment';
		break;

	case 'mssql':
	case 'mssql-odbc':
	case 'msaccess':
		break;

	case 'postgresql':
		break;
}
$db->sql_query($sql);

//$db->sql_query("DROP TABLE {$table_prefix}attach_temp");

echo "<p><b>Done</b></p>\n";