File: /var/www/heifetz/heifetz-app/migration.php
<?php
declare(strict_types=1);
use Helpers\MigrationHelper;
use Helpers\Output;
use Migrations\AbstractMigration;
define('ROOT', realpath(__DIR__) . '/');
const PUBLIC_ROOT = ROOT . '/public';
const UPLOADS_DIR = ROOT . '/uploads';
const TEMP_DIR = ROOT . '/tmp';
date_default_timezone_set('Europe/Moscow');
require_once(ROOT . '/vendor/autoload.php');
require_once(ROOT . '/config.php');
/** @var object $_CONFIG */
require_once(ROOT . '/core/exceptions.php');
require_once(ROOT . '/core/dblib/dblib.php');
if ($_CONFIG->debug) {
ini_set('display_errors', '1');
error_reporting(E_ALL);
}
$argv ??= [];
array_shift($argv);
$migrationName = array_shift($argv);
Output::title('Миграции базы данных системы');
if (empty($migrationName)) {
$newMigrations = MigrationHelper::getNewMigrations();
} else {
$newMigrations = [str_replace(['migrations/', '.php'], ['Migrations\\', ''], $migrationName)];
}
if (empty($newMigrations)) {
Output::log('База не требует обновления' . PHP_EOL);
exit;
}
foreach ($newMigrations as $migrationClass) {
/** @var AbstractMigration $migration */
$migration = new $migrationClass();
$migration->run();
}
Output::success('Миграция завершена');