Server IP : 104.21.14.103 / Your IP : 3.142.252.87 Web Server : LiteSpeed System : Linux business53.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : giankuin ( 1871) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/proc/thread-self/root/proc/thread-self/root/home/giankuin/thietke365.net/wp-content/plugins/mailpoet/lib/Migrator/ |
Upload File : |
<?php declare(strict_types = 1); namespace MailPoet\Migrator; if (!defined('ABSPATH')) exit; use MailPoet\Config\Env; use MailPoetVendor\Doctrine\DBAL\Connection; class Store { /** @var Connection */ private $connection; /** @var string */ private $table; public function __construct( Connection $connection ) { $this->connection = $connection; $this->table = Env::$dbPrefix . 'migrations'; } public function getMigrationsTable(): string { return $this->table; } public function startMigration(string $name): void { $this->connection->executeStatement(" INSERT INTO {$this->table} (name, started_at) VALUES (?, current_timestamp()) ON DUPLICATE KEY UPDATE started_at = current_timestamp(), completed_at = NULL, retries = retries + 1, error = NULL ", [$name]); } public function completeMigration(string $name): void { $this->connection->executeStatement(" UPDATE {$this->table} SET completed_at = current_timestamp() WHERE name = ? ", [$name]); } public function failMigration(string $name, string $error): void { $this->connection->executeStatement(" UPDATE {$this->table} SET completed_at = current_timestamp(), error = ? WHERE name = ? ", [$error ?: 'Unknown error', $name]); } public function getAll(): array { // Some backup plugins may convert NULL values to empty strings, // in which case we need to cast the error column value to NULL. return $this->connection->fetchAllAssociative(" SELECT id, name, started_at, completed_at, retries, IF(error = '', NULL, error) AS error FROM {$this->table} ORDER BY id ASC "); } public function ensureMigrationsTable(): void { $collate = Env::$dbCharsetCollate; $this->connection->executeStatement(" CREATE TABLE IF NOT EXISTS {$this->table} ( id int(11) unsigned NOT NULL AUTO_INCREMENT, name varchar(191) NOT NULL, started_at timestamp NOT NULL, completed_at timestamp NULL, retries int(11) unsigned NOT NULL DEFAULT 0, error text NULL, PRIMARY KEY (id), UNIQUE KEY (name) ) {$collate}; "); } }