Skip to content

Commit

Permalink
Merge pull request #8 from ASKozienko/migrations
Browse files Browse the repository at this point in the history
Migrations integration
  • Loading branch information
makasim committed Mar 1, 2019
2 parents 4625303 + b42d4f5 commit b1be3d8
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 2 deletions.
2 changes: 2 additions & 0 deletions DependencyInjection/Configuration.php
Expand Up @@ -2,6 +2,7 @@
namespace Formapro\Yadm\Bundle\DependencyInjection;

use Formapro\Yadm\Hydrator;
use Formapro\Yadm\Migration\Symfony\MigrationsDIFactory;
use Formapro\Yadm\Storage;
use Formapro\Yadm\StorageMeta;
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
Expand Down Expand Up @@ -41,6 +42,7 @@ public function getConfigTreeBuilder()
->end()
->end()
->end()
->append(MigrationsDIFactory::getConfiguration())
;

return $tb;
Expand Down
4 changes: 4 additions & 0 deletions DependencyInjection/YadmExtension.php
Expand Up @@ -7,6 +7,7 @@
use Formapro\Yadm\ChangesCollector;
use Formapro\Yadm\CollectionFactory;
use Formapro\Yadm\ConvertValues;
use Formapro\Yadm\Migration\Symfony\MigrationsDIFactory;
use Formapro\Yadm\PessimisticLock;
use Formapro\Yadm\Registry;
use Formapro\Yadm\Type\UTCDatetimeType;
Expand Down Expand Up @@ -151,5 +152,8 @@ public function load(array $configs, ContainerBuilder $container)
->addArgument(new Reference('yadm.client'))
->addTag('console.command')
;

// migrations
MigrationsDIFactory::buildServices($config['migrations'], $container);
}
}
50 changes: 50 additions & 0 deletions README.md
Expand Up @@ -32,6 +32,7 @@ class AppKernel extends Kernel
```yaml
yadm:
mongo_uri: 'mongodb://mongo:27017/db_name'
migrations: ~ # enable migrations
models:
category:
class: 'Acme\Model\Category'
Expand All @@ -54,6 +55,55 @@ $registry = $container->get('yadm');
$productStorage = $registry->getStorage('Acme\Model\Category');
```

## Migrations

Generate new migration class

```bash
$ ./bin/console yadm:migrations:generate
Generated new migration class to "/app/YadmMigrations/Migration20190301122316.php"
```

Generated migration class example

```php
<?php

declare(strict_types=1);

namespace App\YadmMigrations;

use Formapro\Yadm\Migration\Migration;
use Formapro\Yadm\Registry;

/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Migration20190301122316 implements Migration
{
public function execute(Registry $yadm): void
{

}
}
```

Execute migrations

```bash
$ ./bin/console yadm:migrations:migrate
Next migrations will be executed: 20190301122316, 20190301122500, 20190301122502
WARNING! You are about to execute a database migration that could result in schema changes and data loss. Are you sure you wish to continue? (y/n)
Execute migration: 20190301122316
Execute migration: 20190301122500
Execute migration: 20190301122502

------------------------
++ finished in 0s
++ 3 migrations executed
```


## Licence

MIT
5 changes: 3 additions & 2 deletions composer.json
Expand Up @@ -4,10 +4,11 @@
"license": "MIT",
"require": {
"php": ">=7.0",
"formapro/yadm": "^0.5"
"formapro/yadm": "^0.5",
"formapro/yadm-migrations": "^0.5"
},
"suggest": {
"doctrine/data-fixtures": "^1.2 If you want to use fixrue load command"
"doctrine/data-fixtures": "^1.2 If you want to use fixture load command"
},
"autoload": {
"psr-4": { "Formapro\\Yadm\\Bundle\\": "" },
Expand Down

0 comments on commit b1be3d8

Please sign in to comment.