diff options
| author | Joas Schilling <nickvergessen@gmx.de> | 2014-05-28 23:33:25 +0200 |
|---|---|---|
| committer | Joas Schilling <nickvergessen@gmx.de> | 2014-05-28 23:33:25 +0200 |
| commit | 033df350d956121388b7b9be8f1b0f1d1439d2e4 (patch) | |
| tree | c40644d7d4e8c613a84accf52eeb768528c941b3 /phpBB/phpbb/db | |
| parent | 1b2238a6b11ff7ad8f8feae44816268c790f809d (diff) | |
| parent | 9f37d414be1cc13377b9af1777220577c7af645c (diff) | |
| download | forums-033df350d956121388b7b9be8f1b0f1d1439d2e4.tar forums-033df350d956121388b7b9be8f1b0f1d1439d2e4.tar.gz forums-033df350d956121388b7b9be8f1b0f1d1439d2e4.tar.bz2 forums-033df350d956121388b7b9be8f1b0f1d1439d2e4.tar.xz forums-033df350d956121388b7b9be8f1b0f1d1439d2e4.zip | |
Merge pull request #2474 from PayBas/ticket/12561
[ticket/12561] Add "after" check to schema_generator for columns_add
* PayBas/ticket/12561:
[ticket/12561] Reworked tests by nickvergessen
[ticket/12561] Added tests for "after last", "after missing" and "empty"
[ticket/12561] Add check to see if "after" column actually exists
[ticket/12561] Added test for "after"
[ticket/12561] Add "after" check to schema_generator for columns_add
Diffstat (limited to 'phpBB/phpbb/db')
| -rw-r--r-- | phpBB/phpbb/db/migration/schema_generator.php | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/phpBB/phpbb/db/migration/schema_generator.php b/phpBB/phpbb/db/migration/schema_generator.php index 871fd97aca..818e27a362 100644 --- a/phpBB/phpbb/db/migration/schema_generator.php +++ b/phpBB/phpbb/db/migration/schema_generator.php @@ -109,7 +109,25 @@ class schema_generator { foreach ($add_columns as $column => $column_data) { - $this->tables[$table]['COLUMNS'][$column] = $column_data; + if (isset($column_data['after'])) + { + $columns = $this->tables[$table]['COLUMNS']; + $offset = array_search($column_data['after'], array_keys($columns)); + unset($column_data['after']); + + if ($offset === false) + { + $this->tables[$table]['COLUMNS'][$column] = array_values($column_data); + } + else + { + $this->tables[$table]['COLUMNS'] = array_merge(array_slice($columns, 0, $offset + 1, true), array($column => array_values($column_data)), array_slice($columns, $offset)); + } + } + else + { + $this->tables[$table]['COLUMNS'][$column] = $column_data; + } } } } |
