# 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](http://github.com/downloads/ericclemmons/migrations/doctrine-migrations.phar)
### Modifications
* 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;
$output->setStyle('p');
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:
; http://php.net/phar.readonly
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](http://www.doctrine-project.org/projects/migrations/2.0/docs/en).