diff options
author | Nils Adermann <naderman@naderman.de> | 2012-10-25 12:26:44 -0700 |
---|---|---|
committer | Nathan Guse <nathaniel.guse@gmail.com> | 2013-01-09 16:40:00 -0600 |
commit | 8645321f40d0b13de6201688c69f9f05bc649dcf (patch) | |
tree | 85d5634ba94c89dda2fb33ad5c1d1c365365c253 | |
parent | d304b6449db6e7c6f3c9058062aca0c641f023a4 (diff) | |
download | forums-8645321f40d0b13de6201688c69f9f05bc649dcf.tar forums-8645321f40d0b13de6201688c69f9f05bc649dcf.tar.gz forums-8645321f40d0b13de6201688c69f9f05bc649dcf.tar.bz2 forums-8645321f40d0b13de6201688c69f9f05bc649dcf.tar.xz forums-8645321f40d0b13de6201688c69f9f05bc649dcf.zip |
[feature/migrations] Return schema changes in database update style array
Returning the set of schema changes allows potentially aggregating to generate
the overall install schema automatically from a set of migrations
PHPBB3-9737
-rw-r--r-- | phpBB/includes/db/migration.php | 5 | ||||
-rw-r--r-- | phpBB/includes/db/migrator.php | 7 | ||||
-rw-r--r-- | tests/dbal/migration/dummy.php | 8 |
3 files changed, 16 insertions, 4 deletions
diff --git a/phpBB/includes/db/migration.php b/phpBB/includes/db/migration.php index f96fcb9568..ee916aedc0 100644 --- a/phpBB/includes/db/migration.php +++ b/phpBB/includes/db/migration.php @@ -52,12 +52,13 @@ class phpbb_db_migration } /** - * Updates the database schema + * Updates the database schema by providing a set of change instructions * - * @return null + * @return array */ function update_schema() { + return array(); } /** diff --git a/phpBB/includes/db/migrator.php b/phpBB/includes/db/migrator.php index f4613e3aec..4a178af468 100644 --- a/phpBB/includes/db/migrator.php +++ b/phpBB/includes/db/migrator.php @@ -151,7 +151,7 @@ class phpbb_db_migrator if (!$state['migration_schema_done']) { - $migration->update_schema(); + $this->apply_schema_changes($migration->update_schema()); $state['migration_schema_done'] = true; } else @@ -245,4 +245,9 @@ class phpbb_db_migrator return true; } + + function apply_schema_changes($schema_changes) + { + $this->db_tools->perform_schema_changes($schema_changes); + } } diff --git a/tests/dbal/migration/dummy.php b/tests/dbal/migration/dummy.php index b286d44f77..0567b50740 100644 --- a/tests/dbal/migration/dummy.php +++ b/tests/dbal/migration/dummy.php @@ -16,7 +16,13 @@ class phpbb_dbal_migration_dummy extends phpbb_db_migration function update_schema() { - $this->db_column_add('phpbb_config', 'extra_column', array('UINT', 0)); + return array( + 'add_columns' => array( + 'phpbb_config' => array( + 'extra_column' => array('UINT', 0), + ), + ), + ); } function update_data() |