public function execute(InputInterface $input, OutputInterface $output)
 {
     $originalCliArgs = $_SERVER['argv'];
     $_SERVER['argv'] = ['migrations'];
     if ($input->getOption('init-sql')) {
         $_SERVER['argv'][] = '--init-sql';
     }
     if ($input->getOption('reset')) {
         $_SERVER['argv'][] = '--reset';
     }
     foreach ($input->getArgument('names') as $name) {
         $_SERVER['argv'][] = $name;
     }
     // run controller
     try {
         $this->controller->run();
         $this->fireEvent('nextras.migrations.success');
         $this->fireEvent('nextras.migrations.complete');
         $this->getApplication()->find('migrate:unlock')->run(new ArrayInput(['command' => 'migrate:unlock']), $output);
     } catch (Exception $e) {
         $this->fireEvent('nextras.migrations.fail');
         $this->fireEvent('nextras.migrations.complete');
         throw $e;
     }
     $_SERVER['argv'] = $originalCliArgs;
 }
Exemple #2
0
<?php

use Nextras\Migrations\Bridges;
use Nextras\Migrations\Controllers;
use Nextras\Migrations\Drivers;
use Nextras\Migrations\Extensions;
/** @var callable $containerFactory */
$containerFactory = (require __DIR__ . '/../app/bootstrap.php');
$params = ['appDir' => __DIR__ . '/../app', 'wwwDir' => __DIR__ . '/../www'];
/** @var \Nette\DI\Container $container */
$container = $containerFactory([], $params);
/** @var \Nette\Database\Connection $connection */
$connection = $container->getByType('Nette\\Database\\Connection');
$dbal = new Bridges\NetteDatabase\NetteAdapter($connection);
$driver = new Drivers\MySqlDriver($dbal);
$controller = new Controllers\ConsoleController($driver);
$baseDir = __DIR__;
$controller->addGroup('structures', "{$baseDir}/structures");
$controller->addGroup('basic-data', "{$baseDir}/basic-data", ['structures']);
$controller->addGroup('dummy-data', "{$baseDir}/dummy-data", ['basic-data']);
$controller->addExtension('sql', new Extensions\SqlHandler($driver));
$controller->run();