aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--phpBB/phpbb/console/command/db/list_command.php6
-rw-r--r--phpBB/phpbb/console/command/db/migration_command.php2
-rw-r--r--phpBB/phpbb/db/migrator.php24
-rw-r--r--phpBB/phpbb/extension/base.php17
-rw-r--r--phpBB/phpbb/install/module/update_database/task/update.php11
-rw-r--r--tests/mock/migrator.php4
6 files changed, 26 insertions, 38 deletions
diff --git a/phpBB/phpbb/console/command/db/list_command.php b/phpBB/phpbb/console/command/db/list_command.php
index dfec5c7da2..708107b592 100644
--- a/phpBB/phpbb/console/command/db/list_command.php
+++ b/phpBB/phpbb/console/command/db/list_command.php
@@ -39,12 +39,6 @@ class list_command extends \phpbb\console\command\db\migration_command
foreach ($this->load_migrations() as $name)
{
- // Ignore non-migration files
- if (\phpbb\db\migrator::is_migration($name) === false)
- {
- continue;
- }
-
if ($this->migrator->migration_state($name) !== false)
{
$installed[] = $name;
diff --git a/phpBB/phpbb/console/command/db/migration_command.php b/phpBB/phpbb/console/command/db/migration_command.php
index d44ef8c5cb..b951560588 100644
--- a/phpBB/phpbb/console/command/db/migration_command.php
+++ b/phpBB/phpbb/console/command/db/migration_command.php
@@ -45,7 +45,7 @@ abstract class migration_command extends \phpbb\console\command\command
$this->migrator->set_migrations($migrations);
- return $migrations;
+ return $this->migrator->get_migrations();
}
protected function finalise_update()
diff --git a/phpBB/phpbb/db/migrator.php b/phpBB/phpbb/db/migrator.php
index 8f3b860b93..a1e93942cd 100644
--- a/phpBB/phpbb/db/migrator.php
+++ b/phpBB/phpbb/db/migrator.php
@@ -170,10 +170,28 @@ class migrator
*/
public function set_migrations($class_names)
{
+ foreach ($class_names as $key => $class)
+ {
+ if (!self::is_migration($class))
+ {
+ unset($class_names[$key]);
+ }
+ }
+
$this->migrations = $class_names;
}
/**
+ * Get the list of available migration class names
+ *
+ * @return array Array of all migrations available to be run
+ */
+ public function get_migrations()
+ {
+ return $this->migrations;
+ }
+
+ /**
* Runs a single update step from the next migration to be applied.
*
* The update step can either be a schema or a (partial) data update. To
@@ -226,7 +244,7 @@ class migrator
*/
protected function try_apply($name)
{
- if (!self::is_migration($name))
+ if (!class_exists($name))
{
$this->output_handler->write(array('MIGRATION_NOT_VALID', $name), migrator_output_handler_interface::VERBOSITY_DEBUG);
return false;
@@ -401,7 +419,7 @@ class migrator
*/
protected function try_revert($name)
{
- if (!self::is_migration($name))
+ if (!class_exists($name))
{
return false;
}
@@ -719,7 +737,7 @@ class migrator
return false;
}
- if (!self::is_migration($name))
+ if (!class_exists($name))
{
return $name;
}
diff --git a/phpBB/phpbb/extension/base.php b/phpBB/phpbb/extension/base.php
index a7531350f7..c7778cfed1 100644
--- a/phpBB/phpbb/extension/base.php
+++ b/phpBB/phpbb/extension/base.php
@@ -73,9 +73,7 @@ class base implements \phpbb\extension\extension_interface
*/
public function enable_step($old_state)
{
- $migrations = $this->get_migration_file_list();
-
- $this->migrator->set_migrations($migrations);
+ $this->get_migration_file_list();
$this->migrator->update();
@@ -103,8 +101,6 @@ class base implements \phpbb\extension\extension_interface
{
$migrations = $this->get_migration_file_list();
- $this->migrator->set_migrations($migrations);
-
foreach ($migrations as $migration)
{
while ($this->migrator->migration_state($migration) !== false)
@@ -137,16 +133,9 @@ class base implements \phpbb\extension\extension_interface
$migrations = $this->extension_finder->get_classes_from_files($migrations);
- // Unset classes that are not a valid migration
- foreach ($migrations as $key => $migration)
- {
- if (\phpbb\db\migrator::is_migration($migration) === true)
- {
- continue;
- }
+ $this->migrator->set_migrations($migrations);
- unset($migrations[$key]);
- }
+ $migrations = $this->migrator->get_migrations();
return $migrations;
}
diff --git a/phpBB/phpbb/install/module/update_database/task/update.php b/phpBB/phpbb/install/module/update_database/task/update.php
index eb9bdc8138..4b2baf2c23 100644
--- a/phpBB/phpbb/install/module/update_database/task/update.php
+++ b/phpBB/phpbb/install/module/update_database/task/update.php
@@ -139,17 +139,8 @@ class update extends task_base
->extension_directory('/migrations')
->get_classes();
- // Unset classes that are not a valid migration
- foreach ($migrations as $key => $migration_class)
- {
- if (\phpbb\db\migrator::is_migration($migration_class) === false)
- {
- unset($migrations[$key]);
- }
- }
-
$this->migrator->set_migrations($migrations);
- $migration_count = count($migrations);
+ $migration_count = count($this->migrator->get_migrations());
$this->iohandler->set_task_count($migration_count, true);
$progress_count = $this->installer_config->get('database_update_count', 0);
diff --git a/tests/mock/migrator.php b/tests/mock/migrator.php
index 293f115335..4d1aca0a0a 100644
--- a/tests/mock/migrator.php
+++ b/tests/mock/migrator.php
@@ -21,10 +21,6 @@ class phpbb_mock_migrator extends \phpbb\db\migrator
{
}
- public function set_migrations($class_names)
- {
- }
-
public function update()
{
}