aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/develop/create_schema_files.php
diff options
context:
space:
mode:
authorHenry Sudhof <kellanved@phpbb.com>2012-04-12 18:34:50 +0200
committerPatrick Webster <noxwizard@phpbb.com>2014-03-01 20:59:11 -0600
commitfd4f973440baf51b92de61cd067268f1881a9a30 (patch)
treefa87f8b769881f6c72a409ead779fe39ea4f106c /phpBB/develop/create_schema_files.php
parent9f4908f0f2896d60c348f4e52ef4a200a8404bd7 (diff)
downloadforums-fd4f973440baf51b92de61cd067268f1881a9a30.tar
forums-fd4f973440baf51b92de61cd067268f1881a9a30.tar.gz
forums-fd4f973440baf51b92de61cd067268f1881a9a30.tar.bz2
forums-fd4f973440baf51b92de61cd067268f1881a9a30.tar.xz
forums-fd4f973440baf51b92de61cd067268f1881a9a30.zip
[ticket/9725] Create an Azure SQL compatible Schema
Two problems were encountered when installing on AzureSQL: -Azure SQL does not support the ON clause of T-SQL -Azure SQL requries a clustered index AKA primary key on all tables The fix is makeshift; it introduces questionable primary indices, which should be replaced with auto--increment columns. PHPBB3-9725
Diffstat (limited to 'phpBB/develop/create_schema_files.php')
-rw-r--r--phpBB/develop/create_schema_files.php20
1 files changed, 16 insertions, 4 deletions
diff --git a/phpBB/develop/create_schema_files.php b/phpBB/develop/create_schema_files.php
index 7b1fff40fb..23ef2f6c74 100644
--- a/phpBB/develop/create_schema_files.php
+++ b/phpBB/develop/create_schema_files.php
@@ -552,7 +552,7 @@ foreach ($supported_dbms as $dbms)
case 'mssql':
$line = substr($line, 0, -2);
- $line .= "\n) ON [PRIMARY]" . (($textimage) ? ' TEXTIMAGE_ON [PRIMARY]' : '') . "\n";
+ $line .= "\n)";// ON [PRIMARY]" . (($textimage) ? ' TEXTIMAGE_ON [PRIMARY]' : '') . "\n";
$line .= "GO\n\n";
break;
}
@@ -589,7 +589,7 @@ foreach ($supported_dbms as $dbms)
$line .= "\tCONSTRAINT [PK_{$table_name}] PRIMARY KEY CLUSTERED \n";
$line .= "\t(\n";
$line .= "\t\t[" . implode("],\n\t\t[", $table_data['PRIMARY_KEY']) . "]\n";
- $line .= "\t) ON [PRIMARY] \n";
+ $line .= "\t) \n";
$line .= "GO\n\n";
break;
@@ -684,7 +684,7 @@ foreach ($supported_dbms as $dbms)
case 'mssql':
$line .= ($key_data[0] == 'INDEX') ? 'CREATE INDEX' : '';
$line .= ($key_data[0] == 'UNIQUE') ? 'CREATE UNIQUE INDEX' : '';
- $line .= " [{$key_name}] ON [{$table_name}]([" . implode('], [', $key_data[1]) . "]) ON [PRIMARY]\n";
+ $line .= " [{$key_name}] ON [{$table_name}]([" . implode('], [', $key_data[1]) . "]) \n";
$line .= "GO\n\n";
break;
@@ -863,8 +863,9 @@ function get_schema_struct()
'KEYS' => array(
'group_id' => array('INDEX', 'group_id'),
'auth_opt_id' => array('INDEX', 'auth_option_id'),
- 'auth_role_id' => array('INDEX', 'auth_role_id'),
+ 'auth_role_id' => array('INDEX', 'auth_role_id', 'auth_option_id'),
),
+ 'PRIMARY_KEY' => array('group_id', 'forum_id', 'auth_option_id', 'auth_role_id', 'auth_setting'),
);
$schema_data['phpbb_acl_options'] = array(
@@ -921,6 +922,7 @@ function get_schema_struct()
'auth_option_id' => array('INDEX', 'auth_option_id'),
'auth_role_id' => array('INDEX', 'auth_role_id'),
),
+ 'PRIMARY_KEY' => array('user_id', 'forum_id', 'auth_option_id', 'auth_role_id', 'auth_setting'),
);
$schema_data['phpbb_banlist'] = array(
@@ -1142,6 +1144,7 @@ function get_schema_struct()
'user_id' => array('INDEX', 'user_id'),
'notify_stat' => array('INDEX', 'notify_status'),
),
+ 'PRIMARY_KEY' => array('forum_id', 'user_id'),
);
$schema_data['phpbb_groups'] = array(
@@ -1258,6 +1261,8 @@ function get_schema_struct()
'disp_idx' => array('INDEX', 'display_on_index'),
'forum_id' => array('INDEX', 'forum_id'),
),
+ 'PRIMARY_KEY' => array('forum_id', 'user_id', 'group_id'),
+
);
$schema_data['phpbb_modules'] = array(
@@ -1293,6 +1298,7 @@ function get_schema_struct()
'poll_opt_id' => array('INDEX', 'poll_option_id'),
'topic_id' => array('INDEX', 'topic_id'),
),
+ 'PRIMARY_KEY' => array('topic_id', 'poll_option_id'),
);
$schema_data['phpbb_poll_votes'] = array(
@@ -1307,6 +1313,7 @@ function get_schema_struct()
'vote_user_id' => array('INDEX', 'vote_user_id'),
'vote_user_ip' => array('INDEX', 'vote_user_ip'),
),
+ 'PRIMARY_KEY' => array('topic_id', 'poll_option_id', 'vote_user_id'),
);
$schema_data['phpbb_posts'] = array(
@@ -1433,6 +1440,7 @@ function get_schema_struct()
'author_id' => array('INDEX', 'author_id'),
'usr_flder_id' => array('INDEX', array('user_id', 'folder_id')),
),
+'PRIMARY_KEY' => array('msg_id', 'user_id', 'author_id'),
);
$schema_data['phpbb_profile_fields'] = array(
@@ -1568,6 +1576,7 @@ function get_schema_struct()
'word_id' => array('INDEX', 'word_id'),
'post_id' => array('INDEX', 'post_id'),
),
+ 'PRIMARY_KEY' => array('post_id', 'word_id'),
);
$schema_data['phpbb_sessions'] = array(
@@ -1683,6 +1692,7 @@ function get_schema_struct()
'tid' => array('INDEX', 'template_id'),
'tfn' => array('INDEX', 'template_filename'),
),
+ 'PRIMARY_KEY' => array('template_id', 'template_filename'),
);
$schema_data['phpbb_styles_theme'] = array(
@@ -1812,6 +1822,7 @@ function get_schema_struct()
'user_id' => array('INDEX', 'user_id'),
'notify_stat' => array('INDEX', 'notify_status'),
),
+ 'PRIMARY_KEY' => array('topic_id', 'user_id'),
);
$schema_data['phpbb_user_group'] = array(
@@ -1826,6 +1837,7 @@ function get_schema_struct()
'user_id' => array('INDEX', 'user_id'),
'group_leader' => array('INDEX', 'group_leader'),
),
+ 'PRIMARY_KEY' => array('group_id', 'user_id'),
);
$schema_data['phpbb_users'] = array(