1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-05-24 16:21:20 +02:00

fix creating index and add more checking to schema changes

git-svn-id: file:///svn/phpbb/trunk@9348 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Meik Sievertsen 2009-02-28 16:40:01 +00:00
parent e7fbdafd7c
commit e40d9c4386

View File

@ -296,7 +296,15 @@ class phpbb_db_tools
{ {
foreach ($columns as $column_name => $column_data) foreach ($columns as $column_name => $column_data)
{ {
$result = $this->sql_column_change($table, $column_name, $column_data); // If the column exists we change it, else we add it ;)
if ($this->sql_column_exists($table, $column_name))
{
$result = $this->sql_column_change($table, $column_name, $column_data);
}
else
{
$result = $this->sql_column_add($table, $column_name, $column_data);
}
if ($this->return_statements) if ($this->return_statements)
{ {
@ -313,15 +321,19 @@ class phpbb_db_tools
{ {
foreach ($columns as $column_name => $column_data) foreach ($columns as $column_name => $column_data)
{ {
// Only add the column if it does not exist yet // Only add the column if it does not exist yet, else change it (to be consistent)
if (!$this->sql_column_exists($table, $column_name)) if ($this->sql_column_exists($table, $column_name))
{
$result = $this->sql_column_change($table, $column_name, $column_data);
}
else
{ {
$result = $this->sql_column_add($table, $column_name, $column_data); $result = $this->sql_column_add($table, $column_name, $column_data);
}
if ($this->return_statements) if ($this->return_statements)
{ {
$statements = array_merge($statements, $result); $statements = array_merge($statements, $result);
}
} }
} }
} }
@ -351,11 +363,15 @@ class phpbb_db_tools
{ {
foreach ($columns as $column) foreach ($columns as $column)
{ {
$result = $this->sql_column_remove($table, $column); // Only remove the column if it exists...
if ($this->sql_column_exists($table, $column))
if ($this->return_statements)
{ {
$statements = array_merge($statements, $result); $result = $this->sql_column_remove($table, $column);
if ($this->return_statements)
{
$statements = array_merge($statements, $result);
}
} }
} }
} }
@ -399,7 +415,7 @@ class phpbb_db_tools
{ {
foreach ($index_array as $index_name => $column) foreach ($index_array as $index_name => $column)
{ {
$result = $this->sql_create_unique_index($table, $index_name, $column); $result = $this->sql_create_index($table, $index_name, $column);
if ($this->return_statements) if ($this->return_statements)
{ {