Yoast\WP\SEO\Initializers
Migration_Runner::run_migrations
Initializes the migrations.
Метод класса: Migration_Runner{}
Хуков нет.
Возвращает
true|false. True on success, false on failure.
Использование
$Migration_Runner = new Migration_Runner(); $Migration_Runner->run_migrations( $name, $version );
- $name(строка) (обязательный)
- The name of the migration.
- $version(строка)
- The current version.
По умолчанию:\WPSEO_VERSION
Код Migration_Runner::run_migrations() Migration Runner::run migrations Yoast 27.6
public function run_migrations( $name, $version = \WPSEO_VERSION ) {
if ( ! $this->migration_status->should_run_migration( $name, $version ) ) {
return true;
}
if ( ! $this->migration_status->lock_migration( $name ) ) {
return false;
}
$migrations = $this->loader->get_migrations( $name );
if ( $migrations === false ) {
$this->migration_status->set_error( $name, "Could not perform $name migrations. No migrations found.", $version );
return false;
}
try {
$this->adapter->create_schema_version_table();
$all_versions = \array_keys( $migrations );
$migrated_versions = $this->adapter->get_migrated_versions();
$to_do_versions = \array_diff( $all_versions, $migrated_versions );
\sort( $to_do_versions, \SORT_STRING );
foreach ( $to_do_versions as $to_do_version ) {
$class = $migrations[ $to_do_version ];
$this->run_migration( $to_do_version, $class );
}
} catch ( Exception $exception ) {
// Something went wrong...
$this->migration_status->set_error( $name, $exception->getMessage(), $version );
if ( \defined( 'YOAST_ENVIRONMENT' ) && \YOAST_ENVIRONMENT !== 'production' ) {
throw $exception;
}
return false;
}
$this->migration_status->set_success( $name, $version );
return true;
}