Adding doctrine cli, to generate migrations, create/update schema.

Just for dev purposes.
1.10.x
Julio Montoya 10 years ago
parent b4180048dc
commit 3d24dc0ae3
  1. 66
      bin/doctrine.php
  2. 23
      cli-config.php

@ -0,0 +1,66 @@
<?php
/* For licensing terms, see /license.txt */
/**
* Very useful script in order to create a Migration file based in the
* current differences of the database:
*
* php bin/doctrine.php migrations:diff
*
* This script also show doctrine basic commands:
* - Create schema
* - Drop schema
* - Update schema,
* etc
*
**/
use Doctrine\ORM\Tools\Console\ConsoleRunner;
use Symfony\Component\Console\Helper\HelperSet;
(@include_once __DIR__ . '/../vendor/autoload.php') || @include_once __DIR__ . '/../../../autoload.php';
$directories = array(getcwd(), getcwd() . DIRECTORY_SEPARATOR . 'config');
$configFile = null;
foreach ($directories as $directory) {
$configFile = $directory . DIRECTORY_SEPARATOR . 'cli-config.php';
if (file_exists($configFile)) {
break;
}
}
if ( ! file_exists($configFile)) {
ConsoleRunner::printCliConfigTemplate();
exit(1);
}
if ( ! is_readable($configFile)) {
echo 'Configuration file [' . $configFile . '] does not have read permission.' . "\n";
exit(1);
}
$commands = array(
new \Doctrine\DBAL\Migrations\Tools\Console\Command\DiffCommand(),
new \Doctrine\DBAL\Migrations\Tools\Console\Command\ExecuteCommand(),
new \Doctrine\DBAL\Migrations\Tools\Console\Command\GenerateCommand(),
new \Doctrine\DBAL\Migrations\Tools\Console\Command\LatestCommand(),
new \Doctrine\DBAL\Migrations\Tools\Console\Command\MigrateCommand(),
new \Doctrine\DBAL\Migrations\Tools\Console\Command\StatusCommand(),
new \Doctrine\DBAL\Migrations\Tools\Console\Command\VersionCommand()
);
$helperSet = require $configFile;
if ( ! ($helperSet instanceof HelperSet)) {
foreach ($GLOBALS as $helperSetCandidate) {
if ($helperSetCandidate instanceof HelperSet) {
$helperSet = $helperSetCandidate;
break;
}
}
}
\Doctrine\ORM\Tools\Console\ConsoleRunner::run($helperSet, $commands);

@ -0,0 +1,23 @@
<?php
/* For licensing terms, see /license.txt */
/**
* Script needed to execute bin/doctrine.php in the command line
* in order to:
*
* - Generate migrations
* - Create schema
* - Update schema
* - Validate schema
* - Etc
**/
use Doctrine\ORM\Tools\Console\ConsoleRunner;
require_once 'main/inc/global.inc.php';
// replace with mechanism to retrieve EntityManager in your app
$entityManager = Database::getManager();
return ConsoleRunner::createHelperSet($entityManager);
Loading…
Cancel
Save