aboutsummaryrefslogtreecommitdiffstats
path: root/tests/dbal/migration
diff options
context:
space:
mode:
authorNathan Guse <nathaniel.guse@gmail.com>2013-01-10 15:09:51 -0600
committerNathan Guse <nathaniel.guse@gmail.com>2013-01-10 15:09:51 -0600
commitd50500860fe44a78c8f29e0f2382b96da17c0b62 (patch)
tree77d9b2691d02fc77fd786ae28cae5cba4ef1084b /tests/dbal/migration
parentdbe71bb170dc684311174bb025696c81f1d50883 (diff)
downloadforums-d50500860fe44a78c8f29e0f2382b96da17c0b62.tar
forums-d50500860fe44a78c8f29e0f2382b96da17c0b62.tar.gz
forums-d50500860fe44a78c8f29e0f2382b96da17c0b62.tar.bz2
forums-d50500860fe44a78c8f29e0f2382b96da17c0b62.tar.xz
forums-d50500860fe44a78c8f29e0f2382b96da17c0b62.zip
[feature/migrations] Store depends on in the database (serialized)
This is required so that when migrations are reverted we can check through all installed migrations and make sure that all dependencies are handled properly and so that we are only required to load the migrations files that could be dependent on the ones installed. I believe in normal proper use the old way might have worked, but in case something happens and an unrelated migration file is installed, but cannot be loaded, this makes sure we do not stop everything unless we absolutely must (one of those files is dependent on something we want to revert). PHPBB3-9737
Diffstat (limited to 'tests/dbal/migration')
-rw-r--r--tests/dbal/migration/fail.php46
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/dbal/migration/fail.php b/tests/dbal/migration/fail.php
new file mode 100644
index 0000000000..8b5c521e09
--- /dev/null
+++ b/tests/dbal/migration/fail.php
@@ -0,0 +1,46 @@
+<?php
+/**
+*
+* @package migration
+* @copyright (c) 2012 phpBB Group
+* @license http://opensource.org/licenses/gpl-license.php GNU Public License v2
+*
+*/
+
+class phpbb_dbal_migration_fail extends phpbb_db_migration
+{
+ function depends_on()
+ {
+ return array();
+ }
+
+ function update_schema()
+ {
+ return array(
+ 'add_columns' => array(
+ $this->table_prefix . 'config' => array(
+ 'test_column' => array('BOOL', 1),
+ ),
+ ),
+ );
+ }
+
+ function revert_schema()
+ {
+ return array(
+ 'drop_columns' => array(
+ $this->table_prefix . 'config' => array(
+ 'test_column',
+ ),
+ ),
+ );
+ }
+
+ function update_data()
+ {
+ return array(
+ array('config.add', array('foobar3', true)),
+ array('config.update', array('does_not_exist', true)),
+ );
+ }
+}