Миграции

Оглавление

1. Введение




Введение #
К оглавлению

Миграции, это система контроля версий для баз данных. Очень удобный сервис для хранения и переноса изменений, особенно при работе в команде. Не нужно объяснять, что именно было изменено в базе, достаточно поделиться миграциями.

Миграции обычно работают на основе построителя запросов, ABC-framework предоставляет собственную систему миграций на основе внутреннего построителя запросов.

Для того, что бы воспользоваться компонентом, необходимо в корне директории App/ создать файл abc без расширения со следующим содержимым:
1
2
3
4
5
6
7
8
9
10
#!/usr/bin/env php
<?php

    
require __DIR__ .'/../vendor/ABC/ABC.php'
    
$config = require __DIR__ .'/../www/resources/config.php'
    
$configCli = require __DIR__ .'/../www/resources/config_cli.php';    
    
$report ABC::startAppCli($config$configCli)->run();
    exit(
$report);
    




Теперь желательно сконфигурировать фреймворк для работы с CLI. Для этого нужно создать конфигурационный файл (config_cli.php):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php 
    
return [
            
'debug' => [   
                    
'checkout'         => false
                    
'exception'        => false
                
],
           
            
'pdo' => [ 
                       
'debug'  => false
            ],  
    
            
'migrations'    => [
                        
// Путь до директории с миграциями
                        
'dir'        => dirname(dirname(dirname(__DIR__)))
                        . 
'/App/Domain/Sources/Migrations/',    
                        
// Область видимости миграций
                        
'namespace' => 'App\Domain\Sources\Migrations',    
                        
            ],
   ];




Это нужно для того, что бы дебаггеры не мешали работе из командной строки.
И еще можно указать путь и область видимости места, где будут храниться миграции. Если путь такой, как указан в примере, эту настройку можно опустить, она идет по умолчанию.

Все, компонент настроен и готов к работе. Для работы нужно открыть консоль в папке App/ и набрать такую команду:
1
2
php abc migrate/help



Откроется краткое руководство со списком команд:
Можно приступать к работе с миграциями.