Doctrine Database Migrations

Eric Clemmons' Modifications

The latest official PHAR had path issues for me, so I made a couple of modifications and made packaging a bit easier, especially when creating a custom PHAR for your own apps.

Download doctrine-migrations.phar with custom Input/Output CLI support


  • Added DiffCommand for migrations.
  • Support for custom ArgvInput in CLI instance
  • Support for custom ConsoleOutput in CLI instance

In the same way that Doctrine will attempt to load the return values from migrations-db.php as your connection parameters, you can have migrations-input.php return:

$input = new \Symfony\Component\Console\Input\ArgvInput;
... make some changes ...
return $input;

or have migrations-output.php return a customized ConsoleOutput with support for HTML tags in your SQL statements:

$output = new \Symfony\Component\Console\Output\ConsoleOutput;
return $output;

This should give you the flexibility you need for customizing your input/output in the CLI.

Building Your Phar

Simply run php package.php, which will create the file: build/doctrine-migrations.phar for you. Done! :) This is a bit simpler than getting Phing/Ant going and running phing build-migrations and hoping the rest of the build dependencies work.

Creating archive disabled by INI setting

If you receive an error that looks like:

creating archive "build/doctrine-migrations.phar" disabled by INI setting

This can be fixed by setting the following in your php.ini:

phar.readonly = Off

Installing Dependencies

To install dependencies issue the following commands:

git submodule init
git submodule update

Official Documentation

All available documentation can be found here.