PHPackages                             mepihindeveloper/php-sql-migration - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. mepihindeveloper/php-sql-migration

ActiveLibrary[Database &amp; ORM](/categories/database)

mepihindeveloper/php-sql-migration
==================================

Component for working with SQL migrations

v1.0.2(5y ago)27MITPHPPHP &gt;=7.4

Since Apr 7Pushed 5y ago1 watchersCompare

[ Source](https://github.com/mepihindeveloper/php-sql-migration)[ Packagist](https://packagist.org/packages/mepihindeveloper/php-sql-migration)[ RSS](/packages/mepihindeveloper-php-sql-migration/feed)WikiDiscussions stable Synced 1w ago

READMEChangelog (3)Dependencies (2)Versions (4)Used By (0)

php-sql-migration
=================

[](#php-sql-migration)

Компонент для работы с SQL миграциями.

В компоненте реализован основной класс `SqlMigration`, который выполняет базовые операции по работе с миграциями. Большинство методов возвращает наборы данных или логические значения. Данный подход позволит написать практически любую обертку для собственных нужд.

Как пример реализации обертки был реализован класс `ConsoleSqlMigration`, которые наследуется от `SqlMigration` и переопределяет его методы. Переопределение первоначально вызывает `parent::` после чего реализует дополнительную логику в выводе сообщений в консоль (терминал).

Для реализации компонента необходимо передать класс реализующий интерфейс `DatabaseInterface` и массив настроек. Обязательными параметрами в настройках являются:

- **schema** - схема в базе данных для миграций
- **table** - таблица в базе данных для миграций
- **path** - путь в файловой структуре для папки с миграциями

Компонент самостоятельно проверяет и создает необходимые (указанные) схемы, таблицы и папки при наличии заранее определенных разрешений (прав). Для корректной работы с базой данных необходимо заранее установить соединение с ней.

Для использования компонента достаточно создать экземпляр класса и вызвать нужный метод:

```
$sqlMigration = new SqlMigration($database, [
	'schema' => 'migrations',
	'table' => 'migration',
	'path' => 'migrations'
]);

$sqlMigration->up();
```

Для работы с консолью достаточно создать файл управления миграциями и вызвать его через `php FILE ACTION PARAMS`:

1. `php migrate up`
2. `php migrate down 2`

Файл автоматической обработки таких запросов может выглядеть следующим образом:

```
#!/usr/bin/env php
