summaryrefslogtreecommitdiff
path: root/bin/migrate
blob: 6336e3879d32dc8b6d9733d5b20d4e136682f05e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/usr/bin/env php
<?php

use Composer\Autoload\ClassLoader;
use Engelsystem\Application;
use Engelsystem\Database\Migration\Migrate;
use Engelsystem\Database\Migration\MigrationServiceProvider;

require_once __DIR__ . '/../includes/application.php';

/** @var $loader ClassLoader */
$baseDir = __DIR__ . '/../db/migrations';

/** @var Application $app */
$app = app();
$app->register(MigrationServiceProvider::class);

/** @var Migrate $migration */
$migration = $app->get('db.migration');
$migration->setOutput(function ($text) { echo $text . PHP_EOL; });

if (isset($argv[1]) && in_array(strtolower($argv[1]), ['help', '--help', '-h'])) {
    echo PHP_EOL . 'Usage: ' . $argv[0] . ' [up|down] [one-step]' . PHP_EOL . PHP_EOL;
    exit;
}

$method = Migrate::UP;
if (isset($argv[1]) && strtolower($argv[1]) == 'down') {
    $argv = array_values($argv);
    $method = Migrate::DOWN;
}

$oneStep = false;
if (isset($argv[2]) && strtolower($argv[2]) == 'one-step') {
    $oneStep = true;
}

$migration->run($baseDir, $method, $oneStep);