diff options
author | Henry Sudhof <kellanved@phpbb.com> | 2012-04-12 18:34:50 +0200 |
---|---|---|
committer | Patrick Webster <noxwizard@phpbb.com> | 2014-03-01 20:59:11 -0600 |
commit | fd4f973440baf51b92de61cd067268f1881a9a30 (patch) | |
tree | fa87f8b769881f6c72a409ead779fe39ea4f106c /phpBB/develop | |
parent | 9f4908f0f2896d60c348f4e52ef4a200a8404bd7 (diff) | |
download | forums-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')
-rw-r--r-- | phpBB/develop/create_schema_files.php | 20 |
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( |