1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-31 05:50:42 +02:00

Merge pull request #2932 from Nicofuma/ticket/12963

[ticket/12963] Load extensions migrations from /migration
This commit is contained in:
Marc Alexander
2014-09-17 00:36:38 +02:00
10 changed files with 251 additions and 8 deletions

View File

@@ -177,11 +177,21 @@ $migrator = $phpbb_container->get('migrator');
$migrator->create_migrations_table();
$phpbb_extension_manager = $phpbb_container->get('ext.manager');
$finder = $phpbb_extension_manager->get_finder();
$migrations = $finder
$migrations = $phpbb_extension_manager
->get_finder()
->core_path('phpbb/db/migration/data/')
->extension_directory('/migration')
->get_classes();
// @deprecated 3.1.0-RC4 (To be removed: 3.2.0)
$migrations_deprecated = $phpbb_extension_manager
->get_finder()
->extension_directory('/migrations')
->get_classes();
$migrations = array_merge($migrations, $migrations_deprecated);
$migrator->set_migrations($migrations);
// What is a safe limit of execution time? Half the max execution time should be safe.

View File

@@ -117,8 +117,17 @@ class migrate extends \phpbb\console\command\command
$migrations = $this->extension_manager
->get_finder()
->core_path('phpbb/db/migration/data/')
->extension_directory('/migration')
->get_classes();
// @deprecated 3.1.0-RC4 (To be removed: 3.2.0)
$migrations_deprecated = $this->extension_manager
->get_finder()
->extension_directory('/migrations')
->get_classes();
$migrations = array_merge($migrations, $migrations_deprecated);
$this->migrator->set_migrations($migrations);
}

View File

@@ -35,6 +35,9 @@ class base implements \phpbb\extension\extension_interface
/** @var string */
protected $extension_path;
/** @var string[] */
private $migrations = false;
/**
* Constructor
*
@@ -122,18 +125,26 @@ class base implements \phpbb\extension\extension_interface
*/
protected function get_migration_file_list()
{
static $migrations = false;
if ($migrations !== false)
if ($this->migrations !== false)
{
return $migrations;
return $this->migrations;
}
// Only have the finder search in this extension path directory
$migrations = $this->extension_finder
->extension_directory('/migration')
->find_from_extension($this->extension_name, $this->extension_path);
$migrations = $this->extension_finder->get_classes_from_files($migrations);
// @deprecated 3.1.0-RC4 (To be removed: 3.2.0)
$migrations_deprecated = $this->extension_finder
->extension_directory('/migrations')
->find_from_extension($this->extension_name, $this->extension_path);
$migrations = $this->extension_finder->get_classes_from_files($migrations);
$migrations_deprecated = $this->extension_finder->get_classes_from_files($migrations_deprecated);
$migrations = array_merge($migrations, $migrations_deprecated);
return $migrations;
}