Custom Integration

If you don't want to use the ./vendor/bin/doctrine-migrations script that comes with the project, you can always setup your own custom integration.

In the root of your project, create a file named migrations and make it executable:

$ chmod +x migrations

Now place the following code in the migrations file:

1#!/usr/bin/env php <?php require_once __DIR__.'/vendor/autoload.php'; use Doctrine\DBAL\DriverManager; use Doctrine\Migrations\DependencyFactory; use Doctrine\Migrations\Configuration\Migration\PhpFile; use Doctrine\Migrations\Configuration\Connection\ExistingConnection; use Doctrine\Migrations\Tools\Console\Command; use Symfony\Component\Console\Application; $dbParams = [ 'dbname' => 'migrations_docs_example', 'user' => 'root', 'password' => '', 'host' => 'localhost', 'driver' => 'pdo_mysql', ]; $connection = DriverManager::getConnection($dbParams); $config = new PhpFile('migrations.php'); // Or use one of the Doctrine\Migrations\Configuration\Configuration\* loaders $dependencyFactory = DependencyFactory::fromConnection($config, new ExistingConnection($connection)); $cli = new Application('Doctrine Migrations'); $cli->setCatchExceptions(true); $cli->addCommands(array( new Command\DumpSchemaCommand($dependencyFactory), new Command\ExecuteCommand($dependencyFactory), new Command\GenerateCommand($dependencyFactory), new Command\LatestCommand($dependencyFactory), new Command\ListCommand($dependencyFactory), new Command\MigrateCommand($dependencyFactory), new Command\RollupCommand($dependencyFactory), new Command\StatusCommand($dependencyFactory), new Command\SyncMetadataCommand($dependencyFactory), new Command\VersionCommand($dependencyFactory), )); $cli->run();
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
39
40
41
42
43

Now you can execute the migrations console application like this:

$ ./migrations