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 22.4
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; }