aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@gmx.de>2012-11-13 16:24:02 +0100
committerJoas Schilling <nickvergessen@gmx.de>2012-11-14 02:01:16 +0100
commit8fc022033a16b50aa07d06af8dc2a2508f0d94a6 (patch)
tree193a83b0072db5b90f0e5033a29a6aae37e7a2b5
parent6e286218ec51487e036c9dc74876f90f1db9b6d1 (diff)
downloadforums-8fc022033a16b50aa07d06af8dc2a2508f0d94a6.tar
forums-8fc022033a16b50aa07d06af8dc2a2508f0d94a6.tar.gz
forums-8fc022033a16b50aa07d06af8dc2a2508f0d94a6.tar.bz2
forums-8fc022033a16b50aa07d06af8dc2a2508f0d94a6.tar.xz
forums-8fc022033a16b50aa07d06af8dc2a2508f0d94a6.zip
[ticket/10411] Update schema and fix database update
PHPBB3-10411
-rw-r--r--phpBB/develop/create_schema_files.php1
-rw-r--r--phpBB/install/database_update.php52
-rw-r--r--phpBB/install/schemas/firebird_schema.sql3
-rw-r--r--phpBB/install/schemas/mssql_schema.sql3
-rw-r--r--phpBB/install/schemas/mysql_40_schema.sql1
-rw-r--r--phpBB/install/schemas/mysql_41_schema.sql1
-rw-r--r--phpBB/install/schemas/oracle_schema.sql1
-rw-r--r--phpBB/install/schemas/postgres_schema.sql1
-rw-r--r--phpBB/install/schemas/sqlite_schema.sql3
9 files changed, 39 insertions, 27 deletions
diff --git a/phpBB/develop/create_schema_files.php b/phpBB/develop/create_schema_files.php
index 366f4a9d48..6f5594bd52 100644
--- a/phpBB/develop/create_schema_files.php
+++ b/phpBB/develop/create_schema_files.php
@@ -1178,7 +1178,6 @@ function get_schema_struct()
'group_message_limit' => array('UINT', 0),
'group_max_recipients' => array('UINT', 0),
'group_legend' => array('UINT', 0),
- 'group_teampage' => array('UINT', 0),
),
'PRIMARY_KEY' => 'group_id',
'KEYS' => array(
diff --git a/phpBB/install/database_update.php b/phpBB/install/database_update.php
index 27cc4951a9..540b66d030 100644
--- a/phpBB/install/database_update.php
+++ b/phpBB/install/database_update.php
@@ -1107,11 +1107,18 @@ function database_update_info()
'ext_name' => array('UNIQUE', 'ext_name'),
),
),
+ TEAMPAGE_TABLE => array(
+ 'COLUMNS' => array(
+ 'teampage_id' => array('UINT', NULL, 'auto_increment'),
+ 'group_id' => array('UINT', 0),
+ 'teampage_name' => array('VCHAR_UNI:255', ''),
+ 'teampage_position' => array('UINT', 0),
+ 'teampage_parent' => array('UINT', 0),
+ ),
+ 'PRIMARY_KEY' => 'teampage_id',
+ ),
),
'add_columns' => array(
- GROUPS_TABLE => array(
- 'group_teampage' => array('UINT', 0, 'after' => 'group_legend'),
- ),
PROFILE_FIELDS_TABLE => array(
'field_show_on_pm' => array('BOOL', 0),
),
@@ -2381,26 +2388,39 @@ function change_database_data(&$no_updates, $version)
set_config('use_system_cron', 0);
}
- $sql = 'SELECT group_teampage
- FROM ' . GROUPS_TABLE . '
- WHERE group_teampage > 0';
+ $sql = 'SELECT teampage_id
+ FROM ' . TEAMPAGE_TABLE;
$result = $db->sql_query_limit($sql, 1);
- $added_groups_teampage = (bool) $db->sql_fetchfield('group_teampage');
+ $added_groups_teampage = (bool) $db->sql_fetchfield('teampage_id');
$db->sql_freeresult($result);
if (!$added_groups_teampage)
{
- $sql = 'UPDATE ' . GROUPS_TABLE . '
- SET group_teampage = 1
+ $sql = 'SELECT *
+ FROM ' . GROUPS_TABLE . '
WHERE group_type = ' . GROUP_SPECIAL . "
- AND group_name = 'ADMINISTRATORS'";
- _sql($sql, $errored, $error_ary);
+ AND (group_name = 'ADMINISTRATORS'
+ OR group_name = 'GLOBAL_MODERATORS')
+ ORDER BY group_name ASC";
+ $result = $db->sql_query($sql);
- $sql = 'UPDATE ' . GROUPS_TABLE . '
- SET group_teampage = 2
- WHERE group_type = ' . GROUP_SPECIAL . "
- AND group_name = 'GLOBAL_MODERATORS'";
- _sql($sql, $errored, $error_ary);
+ $teampage_entries = array();
+ while ($row = $db->sql_fetchrow($result))
+ {
+ $teampage_entries[] = array(
+ 'group_id' => (int) $row['group_id'],
+ 'teampage_name' => '',
+ 'teampage_position' => sizeof($teampage_entries) + 1,
+ 'teampage_parent' => 0,
+ );
+ }
+ $db->sql_freeresult($result);
+
+ if (sizeof($teampage_entries))
+ {
+ $db->sql_multi_insert(TEAMPAGE_TABLE, $teampage_entries);
+ }
+ unset($teampage_entries);
}
if (!isset($config['legend_sort_groupname']))
diff --git a/phpBB/install/schemas/firebird_schema.sql b/phpBB/install/schemas/firebird_schema.sql
index b25d0216d9..2e8458a263 100644
--- a/phpBB/install/schemas/firebird_schema.sql
+++ b/phpBB/install/schemas/firebird_schema.sql
@@ -454,8 +454,7 @@ CREATE TABLE phpbb_groups (
group_receive_pm INTEGER DEFAULT 0 NOT NULL,
group_message_limit INTEGER DEFAULT 0 NOT NULL,
group_max_recipients INTEGER DEFAULT 0 NOT NULL,
- group_legend INTEGER DEFAULT 0 NOT NULL,
- group_teampage INTEGER DEFAULT 0 NOT NULL
+ group_legend INTEGER DEFAULT 0 NOT NULL
);;
ALTER TABLE phpbb_groups ADD PRIMARY KEY (group_id);;
diff --git a/phpBB/install/schemas/mssql_schema.sql b/phpBB/install/schemas/mssql_schema.sql
index bc7164325d..79ff8df86a 100644
--- a/phpBB/install/schemas/mssql_schema.sql
+++ b/phpBB/install/schemas/mssql_schema.sql
@@ -562,8 +562,7 @@ CREATE TABLE [phpbb_groups] (
[group_receive_pm] [int] DEFAULT (0) NOT NULL ,
[group_message_limit] [int] DEFAULT (0) NOT NULL ,
[group_max_recipients] [int] DEFAULT (0) NOT NULL ,
- [group_legend] [int] DEFAULT (0) NOT NULL ,
- [group_teampage] [int] DEFAULT (0) NOT NULL
+ [group_legend] [int] DEFAULT (0) NOT NULL
) ON [PRIMARY]
GO
diff --git a/phpBB/install/schemas/mysql_40_schema.sql b/phpBB/install/schemas/mysql_40_schema.sql
index ce4c43c9c3..824b3faecc 100644
--- a/phpBB/install/schemas/mysql_40_schema.sql
+++ b/phpBB/install/schemas/mysql_40_schema.sql
@@ -327,7 +327,6 @@ CREATE TABLE phpbb_groups (
group_message_limit mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
group_max_recipients mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
group_legend mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
- group_teampage mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
PRIMARY KEY (group_id),
KEY group_legend_name (group_legend, group_name(255))
);
diff --git a/phpBB/install/schemas/mysql_41_schema.sql b/phpBB/install/schemas/mysql_41_schema.sql
index c15a3f81d5..dd92a4eb31 100644
--- a/phpBB/install/schemas/mysql_41_schema.sql
+++ b/phpBB/install/schemas/mysql_41_schema.sql
@@ -327,7 +327,6 @@ CREATE TABLE phpbb_groups (
group_message_limit mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
group_max_recipients mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
group_legend mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
- group_teampage mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
PRIMARY KEY (group_id),
KEY group_legend_name (group_legend, group_name)
) CHARACTER SET `utf8` COLLATE `utf8_bin`;
diff --git a/phpBB/install/schemas/oracle_schema.sql b/phpBB/install/schemas/oracle_schema.sql
index 95f23c7359..90759a94ea 100644
--- a/phpBB/install/schemas/oracle_schema.sql
+++ b/phpBB/install/schemas/oracle_schema.sql
@@ -620,7 +620,6 @@ CREATE TABLE phpbb_groups (
group_message_limit number(8) DEFAULT '0' NOT NULL,
group_max_recipients number(8) DEFAULT '0' NOT NULL,
group_legend number(8) DEFAULT '0' NOT NULL,
- group_teampage number(8) DEFAULT '0' NOT NULL,
CONSTRAINT pk_phpbb_groups PRIMARY KEY (group_id)
)
/
diff --git a/phpBB/install/schemas/postgres_schema.sql b/phpBB/install/schemas/postgres_schema.sql
index 15d50035d6..1e8d390b99 100644
--- a/phpBB/install/schemas/postgres_schema.sql
+++ b/phpBB/install/schemas/postgres_schema.sql
@@ -473,7 +473,6 @@ CREATE TABLE phpbb_groups (
group_message_limit INT4 DEFAULT '0' NOT NULL CHECK (group_message_limit >= 0),
group_max_recipients INT4 DEFAULT '0' NOT NULL CHECK (group_max_recipients >= 0),
group_legend INT4 DEFAULT '0' NOT NULL CHECK (group_legend >= 0),
- group_teampage INT4 DEFAULT '0' NOT NULL CHECK (group_teampage >= 0),
PRIMARY KEY (group_id)
);
diff --git a/phpBB/install/schemas/sqlite_schema.sql b/phpBB/install/schemas/sqlite_schema.sql
index f5d5d8e0bf..48530615b7 100644
--- a/phpBB/install/schemas/sqlite_schema.sql
+++ b/phpBB/install/schemas/sqlite_schema.sql
@@ -318,8 +318,7 @@ CREATE TABLE phpbb_groups (
group_receive_pm INTEGER UNSIGNED NOT NULL DEFAULT '0',
group_message_limit INTEGER UNSIGNED NOT NULL DEFAULT '0',
group_max_recipients INTEGER UNSIGNED NOT NULL DEFAULT '0',
- group_legend INTEGER UNSIGNED NOT NULL DEFAULT '0',
- group_teampage INTEGER UNSIGNED NOT NULL DEFAULT '0'
+ group_legend INTEGER UNSIGNED NOT NULL DEFAULT '0'
);
CREATE INDEX phpbb_groups_group_legend_name ON phpbb_groups (group_legend, group_name);