aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--phpBB/phpbb/db/migration/helper.php2
-rw-r--r--tests/dbal/migration/schema.php11
-rw-r--r--tests/dbal/migrator_test.php2
-rw-r--r--tests/migrator/get_schema_steps_test.php38
4 files changed, 48 insertions, 5 deletions
diff --git a/phpBB/phpbb/db/migration/helper.php b/phpBB/phpbb/db/migration/helper.php
index 28a6a56511..009ad1da9f 100644
--- a/phpBB/phpbb/db/migration/helper.php
+++ b/phpBB/phpbb/db/migration/helper.php
@@ -53,7 +53,7 @@ class helper
$steps[] = array(
'dbtools.perform_schema_changes', array(array(
$change_type => array(
- $value,
+ (!is_int($key)) ? $key : 0 => $value,
),
)),
);
diff --git a/tests/dbal/migration/schema.php b/tests/dbal/migration/schema.php
index 46cf66eaec..98407eb1bd 100644
--- a/tests/dbal/migration/schema.php
+++ b/tests/dbal/migration/schema.php
@@ -17,6 +17,14 @@ class phpbb_dbal_migration_schema extends \phpbb\db\migration\migration
'test_column1' => array('BOOL', 1),
),
),
+ 'add_tables' => array(
+ $this->table_prefix . 'foobar' => array(
+ 'COLUMNS' => array(
+ 'module_id' => array('UINT:3', NULL, 'auto_increment'),
+ ),
+ 'PRIMARY_KEY' => 'module_id',
+ ),
+ ),
);
}
@@ -28,6 +36,9 @@ class phpbb_dbal_migration_schema extends \phpbb\db\migration\migration
'test_column1',
),
),
+ 'drop_tables' => array(
+ $this->table_prefix . 'foobar',
+ ),
);
}
}
diff --git a/tests/dbal/migrator_test.php b/tests/dbal/migrator_test.php
index c075f19825..f22f5f5b30 100644
--- a/tests/dbal/migrator_test.php
+++ b/tests/dbal/migrator_test.php
@@ -280,6 +280,7 @@ class phpbb_dbal_migrator_test extends phpbb_database_test_case
}
$this->assertTrue($this->db_tools->sql_column_exists('phpbb_config', 'test_column1'));
+ $this->assertTrue($this->db_tools->sql_table_exists('phpbb_foobar'));
while ($this->migrator->migration_state('phpbb_dbal_migration_schema'))
{
@@ -287,5 +288,6 @@ class phpbb_dbal_migrator_test extends phpbb_database_test_case
}
$this->assertFalse($this->db_tools->sql_column_exists('phpbb_config', 'test_column1'));
+ $this->assertFalse($this->db_tools->sql_table_exists('phpbb_foobar'));
}
}
diff --git a/tests/migrator/get_schema_steps_test.php b/tests/migrator/get_schema_steps_test.php
index f354d3617f..226535754e 100644
--- a/tests/migrator/get_schema_steps_test.php
+++ b/tests/migrator/get_schema_steps_test.php
@@ -21,7 +21,22 @@ class get_schema_steps_test extends phpbb_test_case
return array(
array(
array(
- 'add_tables' => array('table1', 'table2', 'table3'),
+ 'add_tables' => array(
+ 'foo' => array(
+ 'COLUMNS' => array(
+ 'foobar' => array('BOOL', 0),
+ 'foobar2' => array('BOOL', 0),
+ ),
+ 'PRIMARY_KEY' => array('foobar'),
+ ),
+ 'bar' => array(
+ 'COLUMNS' => array(
+ 'barfoo' => array('BOOL', 0),
+ 'barfoor2' => array('BOOL', 0),
+ ),
+ 'PRIMARY_KEY' => array('barfoo'),
+ ),
+ ),
'drop_tables' => array('table1', 'table2', 'table3'),
'add_index' => array(
'table1' => array(
@@ -73,9 +88,24 @@ class get_schema_steps_test extends phpbb_test_case
array('dbtools.perform_schema_changes', array(array('drop_tables' => array('table1')))),
array('dbtools.perform_schema_changes', array(array('drop_tables' => array('table2')))),
array('dbtools.perform_schema_changes', array(array('drop_tables' => array('table3')))),
- array('dbtools.perform_schema_changes', array(array('add_tables' => array('table1')))),
- array('dbtools.perform_schema_changes', array(array('add_tables' => array('table2')))),
- array('dbtools.perform_schema_changes', array(array('add_tables' => array('table3')))),
+ array('dbtools.perform_schema_changes', array(array('add_tables' => array(
+ 'foo' => array(
+ 'COLUMNS' => array(
+ 'foobar' => array('BOOL', 0),
+ 'foobar2' => array('BOOL', 0),
+ ),
+ 'PRIMARY_KEY' => array('foobar'),
+ ),
+ )))),
+ array('dbtools.perform_schema_changes', array(array('add_tables' => array(
+ 'bar' => array(
+ 'COLUMNS' => array(
+ 'barfoo' => array('BOOL', 0),
+ 'barfoor2' => array('BOOL', 0),
+ ),
+ 'PRIMARY_KEY' => array('barfoo'),
+ ),
+ )))),
array('dbtools.perform_schema_changes', array(array('change_columns' => array(
'table1' => array(
'column1' => array('foo'),