2017 © Pedro Peláez
 

library phpcr-migrations-bundle

PHPCR migrations bundle

image

dantleech/phpcr-migrations-bundle

PHPCR migrations bundle

  • PHP
  • 4 Dependents
  • 0 Suggesters
  • 3 Forks
  • 2 Open issues
  • 3 Versions
  • 13 % Grown

The README.md

PHPCR Migrations Bundle

This library provides a Symfony integration for the PHPCR migrations library., (*1)

This version has been archived

This bundle has been renamed to phpcr/phpcr-migrations-bundle. We recommend to update your dependencies to get the latest version., (*2)

dantleech/phpcr-migrations-bundle will remain available to not break existing installations, but is no longer maintained., (*3)

Configuration

Configure the path to your migrations:, (*4)

# app/config.yml
phpcr_migrations:
    paths: [%kernel.root_dir%/phpcr-migrations]

Or the bundle will automatically pick up any migrations in the Resources/phpcr-migrations folder in any bundles registered in the kernel., (*5)

Creating migrations

First create two new migration files:, (*6)

<?php
// app/phpcr-migrations/Version201501011200.php

use PHPCR\SessionInterface;
use PHPCR\Migrations\VersionInterface;

class Version201501011200 implements VersionInterface
{
    public function up(SessionInterface $session)
    {
        $session->getRootNode()->addNode('hello');
    }

    public function down(SessionInterface $session)
    {
        $session->getRootNode()->getNode('hello')->remove();
    }
}

and, (*7)

<?php
// app/phpcr-migrations/Version201501011212.php

use PHPCR\SessionInterface;
use PHPCR\Migrations\VersionInterface;

class Version201501011212 implements VersionInterface
{
    public function up(SessionInterface $session)
    {
        $session->getNode('/hello')->addNode('world');
    }

    public function down(SessionInterface $session)
    {
        $session->getNode('/hello')->getNode('world')->remove();
    }
}

Migration status

Note that migration MUST be named as follows: VersionYYYMMDDHHSS. If they are not so-named, they will not be detected. The timestamp SHOULD be the current date (in this example 2015/01/01 12:00)., (*8)

Now execute the phpcr:migrations:status command:, (*9)

$ php app/console phpcr:migrations:status
+--+---------------+------------------+----------+----------------------------------------------+
|  | Version       | Date             | Migrated | Path                                         |
+--+---------------+------------------+----------+----------------------------------------------+
|  | 201501011200 | 2015-01-01 12:00 | NO       | app/phpcr-migrations/Version201501011200.php |
|  | 201501011212 | 2015-01-01 12:12 | NO       | app/phpcr-migrations/Version201501011212.php |
+--+---------------+------------------+----------+----------------------------------------------+
No migrations have been executed

Executing migrations

Now we can run the migrations:, (*10)

$ php app/console phpcr:migrations:migrate
Upgrading 2 version(s):
 + [1/2]: 201501011200
 + [2/2]: 201501011212

This should run the two migrations, your status should not look like this:, (*11)

Reverting

You can now revert back to the first version as follows:, (*12)

$ php app/console phpcr:migrations:migrate 201501011200
Reverting 1 version(s):
 - [1/4]: V201501011212

Actions

In addition to specifying versions you can specify actions:, (*13)

$ php app/console phpcr:migrations:migrate up
Upgrading 1 version(s):
 - [1/4]: V201501011212

Actions are:, (*14)

  • up: Upgrade one version
  • down: Revert one version
  • top: Migrate to the latest version
  • bottom: Revert all migrations

The Versions

05/12 2016

dev-master

9999999-dev

PHPCR migrations bundle

  Sources   Download

MIT

The Requires

 

The Development Requires

05/12 2016

1.0.0

1.0.0.0

PHPCR migrations bundle

  Sources   Download

MIT

The Requires

 

The Development Requires

29/04 2015

0.1

0.1.0.0

PHPCR migrations bundle

  Sources   Download

MIT

The Requires

 

The Development Requires