summaryrefslogtreecommitdiff
path: root/bin/migrate
diff options
context:
space:
mode:
Diffstat (limited to 'bin/migrate')
-rwxr-xr-xbin/migrate38
1 files changed, 38 insertions, 0 deletions
diff --git a/bin/migrate b/bin/migrate
new file mode 100755
index 00000000..ab3598d4
--- /dev/null
+++ b/bin/migrate
@@ -0,0 +1,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]) && strtolower($argv[1]) == 'help') {
+ echo PHP_EOL . 'Usage: ' . $argv[1] . ' [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);