mirror of
https://github.com/phpbb/phpbb.git
synced 2025-07-30 21:40:43 +02:00
[feature/migrations] Function effectively_installed() in migrations
Allows you to check if the migration is effectively installed (entirely optionall) This function is intended to help moving to migrations from a previous database updater, where some migrations may have been installed already even though they are not yet listed in the migrations table. PHPBB3-9737
This commit is contained in:
@@ -83,6 +83,21 @@ abstract class phpbb_db_migration
|
||||
return array();
|
||||
}
|
||||
|
||||
/**
|
||||
* Allows you to check if the migration is effectively installed (entirely optionall)
|
||||
*
|
||||
* This is checked when a migration is installed. If true is returned, the migration will be set as
|
||||
* installed without performing the database changes.
|
||||
* This function is intended to help moving to migrations from a previous database updater, where some
|
||||
* migrations may have been installed already even though they are not yet listed in the migrations table.
|
||||
*
|
||||
* @return bool True if this migration is installed, False if this migration is not installed (checked on install)
|
||||
*/
|
||||
public function effectively_installed()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the database schema by providing a set of change instructions
|
||||
*
|
||||
|
@@ -271,10 +271,24 @@ class phpbb_db_migrator
|
||||
'class' => $migration,
|
||||
);
|
||||
|
||||
if (!isset($this->migration_state[$name]))
|
||||
if ($migration->effectively_installed())
|
||||
{
|
||||
$state['migration_start_time'] = time();
|
||||
$this->insert_migration($name, $state);
|
||||
$state = array(
|
||||
'migration_depends_on' => $migration->depends_on(),
|
||||
'migration_schema_done' => true,
|
||||
'migration_data_done' => true,
|
||||
'migration_data_state' => '',
|
||||
'migration_start_time' => 0,
|
||||
'migration_end_time' => 0,
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!isset($this->migration_state[$name]))
|
||||
{
|
||||
$state['migration_start_time'] = time();
|
||||
$this->insert_migration($name, $state);
|
||||
}
|
||||
}
|
||||
|
||||
if (!$state['migration_schema_done'])
|
||||
|
Reference in New Issue
Block a user