Skip to content

Commit 417e7ee

Browse files
committed
implement migrations
1 parent 8fe865d commit 417e7ee

File tree

2 files changed

+36
-2
lines changed

2 files changed

+36
-2
lines changed

README.md

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Install using composer.
1010
```json
1111
{
1212
"require": {
13-
"tarantool/mapper": "2.0.2"
13+
"tarantool/mapper": "2.2.0"
1414
}
1515
}
1616
```
@@ -98,10 +98,34 @@ $person->createIndex([
9898
$person->createIndex([
9999
'fields' => ['name', 'birthday'],
100100
'type' => 'hash',
101-
'name' =>
101+
'name' => 'name_with_birthday',
102102
]);
103103
```
104104

105+
# Use migrations
106+
107+
```php
108+
use Tarantool\Mapper\Mapper;
109+
use Tarantool\Mapper\Migration;
110+
111+
class InitTesterSchema implements Migration
112+
{
113+
public function migrate(Mapper $mapper)
114+
{
115+
$tester = $mapper->getSchema()->createSpace('tester');
116+
$tester->addProperty('id', 'unsigned');
117+
$tester->addProperty('name', 'str');
118+
$tester->createIndex('id');
119+
}
120+
}
121+
122+
$mapper->getBootstrap()->register(InitTesterSchema::class);
123+
// or register instance $mapper->getBootstrap()->register(new InitTesterSchema());
124+
125+
$mapper->getBootstrap()->migrate();
126+
127+
```
128+
105129
# Working with the data
106130
Now you can store and retreive data from tarantool storage using mapper instance.
107131
```php

src/Mapper.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ class Mapper
1010
private $client;
1111
private $plugins = [];
1212
private $schema;
13+
private $bootstrap;
1314

1415
public function __construct(Client $client)
1516
{
@@ -56,6 +57,15 @@ public function findRepository(Entity $instance)
5657
throw new Exception("No Repository for given Entity");
5758
}
5859

60+
public function getBootstrap()
61+
{
62+
if(!$this->bootstrap) {
63+
$this->bootstrap = new Bootstrap($this);
64+
}
65+
66+
return $this->bootstrap;
67+
}
68+
5969
public function getClient()
6070
{
6171
return $this->client;

0 commit comments

Comments
 (0)