#!/usr/bin/env php
<?php
require_once __DIR__ . '/../misuzu.php';

$lockPath = $msz->dbCtx->getMigrateLockPath();
if(is_file($lockPath))
    die('A migration script is already running.' . PHP_EOL);

touch($lockPath);
try {
    echo 'Creating migration manager...' . PHP_EOL;
    $manager = $msz->dbCtx->createMigrationManager();

    echo 'Preparing to run migrations...' . PHP_EOL;
    $manager->init();

    echo 'Creating migration repository...' . PHP_EOL;
    $repo = $msz->dbCtx->createMigrationRepo();

    echo 'Running migrations...' . PHP_EOL;
    $completed = $manager->processMigrations($repo);

    if(empty($completed)) {
        echo 'There were no migrations to run!' . PHP_EOL;
    } else {
        echo 'The following migrations have been completed:' . PHP_EOL;
        foreach($completed as $migration)
            echo '  - ' . $migration . PHP_EOL;
    }

    echo PHP_EOL;
} catch(Exception $ex) {
    var_dump($ex);
} finally {
    unlink($lockPath);
}