HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux vmi1674223.contaboserver.net 5.4.0-182-generic #202-Ubuntu SMP Fri Apr 26 12:29:36 UTC 2024 x86_64
User: root (0)
PHP: 7.4.3-4ubuntu2.22
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/ojs/lib/pkp/tools/migration.php
<?php

/**
 * @file tools/migration.php
 *
 * Copyright (c) 2014-2021 Simon Fraser University
 * Copyright (c) 2003-2021 John Willinsky
 * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
 *
 * @class migrationTool
 * @ingroup tools
 */

require(dirname(dirname(dirname(dirname(__FILE__)))) . '/tools/bootstrap.inc.php');

class migrationTool extends CommandLineTool {
	/** @var string Name (fully qualified) of migration class */
	protected $class;

	/** @var string "up" or "down" */
	protected $direction;

	/**
	 * Constructor
	 */
	public function __construct($argv = []) {
		parent::__construct($argv);

		array_shift($argv); // Shift the tool name off the top

		$this->class = array_shift($argv);
		$this->direction = array_shift($argv);

		// The source file/directory must be specified and exist.
		if (empty($this->class)) {
			$this->usage();
			exit(2);
		}

		// The migration direction.
		if (!in_array($this->direction, ['up', 'down'])) {
			$this->usage();
			exit(3);
		}
	}

	/**
	 * Print command usage information.
	 */
	public function usage() {
		echo "Run a migration.\n\n"
			. "Usage: {$this->scriptName} qualified.migration.name [up|down]\n\n";
	}

	/**
	 * Execute the specified migration.
	 */
	public function execute() {
		try {
			$migration = instantiate($this->class, ['Illuminate\Database\Migrations\Migration']);
			if (!$migration) throw new Exception('Could not instantiate "' . $this->class . "\"!");

			$direction = $this->direction;
			$migration->$direction();
		} catch (Exception $e) {
			echo 'ERROR: ' . $e->getMessage() . "\n\n";
			exit(2);
		}
	}
}

$tool = new migrationTool(isset($argv) ? $argv : []);
$tool->execute();