Skip to content
Snippets Groups Projects
Verified Commit d9efdece authored by Bartek Jaskulski's avatar Bartek Jaskulski
Browse files

fix: add option for setting own options name in db

parent 2aba73d3
No related branches found
No related tags found
No related merge requests found
Pipeline #8956 failed with stages
in 32 seconds
......@@ -8,14 +8,17 @@ use Psr\Log\LoggerTrait;
class WpdbLogger implements \Psr\Log\LoggerInterface {
use LoggerTrait;
private const DB_LOG = 'omnibus_db_log';
private const MAX_LOG_SIZE = 30;
/** @var string[] */
private $log;
public function __construct() {
$this->log = json_decode( get_option( self::DB_LOG, '[]' ) );
/** @var string */
private $log_name;
public function __construct( string $log_name ) {
$this->log_name = $log_name;
$this->log = json_decode( get_option( $this->log_name, '[]' ) );
if ( ! \is_array( $this->log ) ) {
$this->log = [];
}
......@@ -27,6 +30,6 @@ class WpdbLogger implements \Psr\Log\LoggerInterface {
array_shift( $this->log );
}
update_option( self::DB_LOG, json_encode( $this->log ), false );
update_option( $this->log_name, json_encode( $this->log ), false );
}
}
......@@ -11,7 +11,6 @@ use WPDesk\Migrations\Version\Version;
use WPDesk\Migrations\Version\WpdbMigrationFactory;
class WpdbMigrator implements Migrator {
private const DB_VERSION = 'omnibus_db_version';
/** @var \wpdb */
private $wpdb;
......@@ -25,13 +24,17 @@ class WpdbMigrator implements Migrator {
/** @var LoggerInterface */
private $logger;
/** @var string */
private $option_name;
/** @param string[] $migration_directories */
public static function from_directories( array $migration_directories ): self {
public static function from_directories( array $migration_directories, string $option_name ): self {
global $wpdb;
$logger = new WpdbLogger();
$logger = new WpdbLogger( $option_name . '_log' );
return new self(
$wpdb,
$option_name,
new FilesystemMigrationsRepository(
$migration_directories,
new GlobFinder(),
......@@ -47,12 +50,13 @@ class WpdbMigrator implements Migrator {
}
/** @param class-string<AbstractMigration>[] $migration_class_names */
public static function from_classes( array $migration_class_names ): self {
public static function from_classes( array $migration_class_names, string $option_name ): self {
global $wpdb;
$logger = new WpdbLogger();
$logger = new WpdbLogger( $option_name . '_log' );
return new self(
$wpdb,
$option_name,
new ArrayMigrationsRepository(
$migration_class_names,
new WpdbMigrationFactory(
......@@ -68,18 +72,20 @@ class WpdbMigrator implements Migrator {
public function __construct(
\wpdb $wpdb,
string $option_name,
MigrationsRepository $migrations_repository,
Comparator $comparator,
LoggerInterface $logger
) {
$this->wpdb = $wpdb;
$this->option_name = $option_name;
$this->migrations_repository = $migrations_repository;
$this->comparator = $comparator;
$this->logger = $logger;
}
private function get_current_version(): Version {
return new Version( get_option( self::DB_VERSION, '' ) );
return new Version( get_option( $this->option_name, '' ) );
}
public function migrate(): void {
......@@ -94,7 +100,7 @@ class WpdbMigrator implements Migrator {
try {
$migration->get_migration()->up();
$this->logger->info( sprintf( 'DB update %s:%s -> ', $current_version, $migration->get_version() ) . 'OK' );
update_option( self::DB_VERSION, (string) $migration->get_version(), true );
update_option( $this->option_name, (string) $migration->get_version(), true );
} catch ( \Throwable $e ) {
$error_msg = sprintf( 'Error while upgrading a database: %s', $this->wpdb->last_error );
$this->logger->error( $error_msg );
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment