Migrations - Schema manager build on Doctrine DBAL and Symfony2
Migrations are a method to manage changes within your data store. With the popularity of distributed source control (git) and their promotion of branching, recording changes to the datastore between commits along multiple branches can become a headace.
Migration tools help to contain changes for each feature and commit into atomic units called `migrations`. These are applied in sequence and are usually indexed with a timestamp.
PHP frameworks and ORM's such like Codeigniter, Propel, CakePHP all provide migration tools, while project like Doctrine provide a diff tool and a migration tool.
I wanted to develop a tool that forfilled the following:
- 1. Provides basic migration toolsets.
- 2. Install via composer.
- 3. PHP 5.3 and up.
- 4. Project folder that can be commited to repository.
- 5. Support multiple Platforms.
- 6. Help with Sanity checks to find sync errors.
I found another database migration project project called mysql-php-migrations. I decied to model my own project in its image.
I later discovered the doctine database abstraction layer Doctrine DBAL and with it support for multiple platforms.
I would later use symfony2 console, config and file related packages tying them all together with Pimple DI.