zenstruck/migrations-bundle

This package is abandoned and no longer maintained. The author suggests using the doctrine/doctrine-migrations-bundle package instead.

Wrapper for DoctrineMigrationsBundle that enables container aware migrations

v2.1.1 2013-01-11 13:21 UTC

README

NOTE: DoctrineMigrationsBundle now supports ContainerAware migrations

Wrapper for DoctrineMigrationsBundle that enables container aware migrations.

NOTE: For use with Symfony 2.0 use the 1.x branch

Installation

  1. Add to composer.json (see http://getcomposer.org/)

    "require" :  {
        "zenstruck/migrations-bundle": "*",
    }
  2. Register the bundle

    <?php
    // app/AppKernel.php
    
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new Zenstruck\Bundle\MigrationsBundle\ZenstruckMigrationsBundle(),
        );
        // ...
    )

Usage

  • To make use of container aware data migrations your migrations must extend Zenstruck\Bundle\MigrationsBundle\Migrations\AbstractMigration. (note: Migrations that extend Doctrine\DBAL\Migrations\AbstractMigration will still run normally)
  • Implement the dataUp() method and add your custom migration logic. (note: The up() method will be run before dataUp)
  • Implement the dataDown() method and add your custom migration logic. (note: The down() method will be run before dataDown)
  • Optionally implement the getDataDescription method and return a description of the migration.
  • Migrate using the zenstruck:migrations:migrate command. (note: make sure you run migrations with this command and not doctrine:migrations:migrate

Migration Template

<?php

namespace Application\Migrations;

use Zenstruck\Bundle\MigrationsBundle\Migrations\AbstractMigration;
use Doctrine\DBAL\Schema\Schema;
use Symfony\Component\DependencyInjection\ContainerInterface;

/**
 * Auto-generated Migration: Please modify to your need!
 */
class Version20120419113825 extends AbstractMigration
{
    public function up(Schema $schema)
    {
        // this up() migration is autogenerated, please modify it to your needs
        $this->abortIf($this->connection->getDatabasePlatform()->getName() != "mysql");

    }

    public function down(Schema $schema)
    {
        // this down() migration is autogenerated, please modify it to your needs
        $this->abortIf($this->connection->getDatabasePlatform()->getName() != "mysql");

    }
    
    public function dataUp(ContainerInterface $container)
    {
        // container aware logic
    }
    
    public function dataDown(ContainerInterface $container)
    {
        // container aware logic
    }

    /**
     * OPTIONAL
     */
    public function getDataDescription()
    {
        return parent::getDataDescription();
    }
}