aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/develop/merge_attachment_tables.php
blob: aa6be0a26ea975da92d911bb6177f9984d70bb85 (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
// -------------------------------------------------------------
//
// $Id$
//
// FILENAME  : merge_attachment_tables.php
// STARTED   : Tue Nov 04, 2003
// COPYRIGHT : © 2001, 2003 phpBB Group
// WWW       : http://www.phpbb.com/
// LICENCE   : GPL vs2.0 [ see /docs/COPYING ] 
// 
// -------------------------------------------------------------

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