PHPackages                             andy87/yii2-migrate-architect - 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. andy87/yii2-migrate-architect

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

andy87/yii2-migrate-architect
=============================

PHP library for Yii2 - developed by and\_y87

0.0.1(1y ago)1168CC-BY-SA-4.0PHPPHP &gt;=8.0

Since Jun 28Pushed 1y ago1 watchersCompare

[ Source](https://github.com/andy87/yii2-migrate-architect)[ Packagist](https://packagist.org/packages/andy87/yii2-migrate-architect)[ Docs](https://andy87.ru)[ RSS](/packages/andy87-yii2-migrate-architect/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (3)Used By (0)

Yii2 migrate architect
======================

[](#yii2-migrate-architect)

Yii2 migrate architect - библиотека для фреймворка Yii2 упрощающая написание кода миграций.

Цель: сделать простой и быстрый инструмент добавления миграций.

### Содержание:

[](#содержание)

- [Установка](#yii2-migrate-architect-setup)
- [Использование](#yii2-migrate-architect-use)

---

  Установка
------------

[](#-----установка)

### Требования

[](#требования)

 - php &gt;=8.0
- Yii2

###  [Composer](https://getcomposer.org/download/)

[](#----composer)

 Добавление пакета в проект
--------------------------

[](#добавление-пакета-в-проект)

### Используя: консольные команды. *(Предпочтительней)*

[](#используя-консольные-команды-предпочтительней)

- используя composer, установленный локально

```
composer require andy87/yii2-migrate-architect
```

- используя composer.phar

```
php composer.phar require andy87/yii2-migrate-architect
```

**Далее:** обновление зависимостей `composer install`

### Используя: файл `composer.json`

[](#используя-файл-composerjson)

Открыть файл `composer.json`
В раздел, ключ `require` добавить строку
`"andy87/yii2-migrate-architect": "*"`
**Далее:** обновление зависимостей `composer install`

\- - - - -

В конфигурационном файле `config/console.php` добавить контроллер:
`andy87\yii2\architect\components\controllers\ArchitectController`

```
use andy87\yii2\architect\components\controllers\ArchitectController;

return [
    // ...
    'controllerMap' => [
        // ...

        'architect' => ArchitectController::class,
        // ...
    ],
    // ...
];
```

Пример с кастомизацией:

- **directoryTemplateMigrations** *путь к шаблонам миграций*
- **migrateTemplateMapping** *маппинг шаблонов миграций*
- **snippetsMigrationFilename** *шаблоны имён файлов миграции*
- **migrationPath** *(массив)путь к директории в которую будет сгенерирована миграция*

```
use andy87\yii2\architect\components\controllers\ArchitectController;

return [
    // ...
    'controllerMap' => [
        // ...

        'architect' => [
            'class' => ArchitectController::class,
            'directoryTemplateMigrations' => '@app/path/to/migrations/template/',
            'migrateTemplateMapping' => [
                ArchitectController::SCENARIO_COLUMN_ADD => 'create_table_template',
                ArchitectController::SCENARIO_UPDATE => 'update_table_template',
                //,,,
            ],
            'snippetsMigrationFilename' => [
                ArchitectController::SCENARIO_COLUMN_ADD => 'create_table__%s',
                ArchitectController::SCENARIO_UPDATE => 'update_table__%s',
                //,,,
            ],
            'migrationPath' => ['@console/migration']
        ],
        // ...
    ],
    // ...
];
```

---

Использование
--------------

[](#использование-)

Консольная команда:

```
  php yii architect
```

Запускает интерактивное меню для:

- запуска миграций
- создания миграций
    - с предустановленными шаблонами миграций использующих базовые классы:
        - `andy87\yii2\architect\CreateTable`
        - `andy87\yii2\architect\UpdateTable`

```
> php yii architect
Yii Migration Tool (based on Yii v2.0.51-dev)

Select action:
 1. Create migration
 2. Apply migrations
 3. Down migrations
 4. Run migrations
 0. Exit
--------------------
 variant: 2
`Create migration`:
 1. Create table
 2. Update column
 3. Add column
 4. Rename column
 5. Remove column
 0. Exit
--------------------
action: 1

Table name: product
Create new migration '../console/migrations\m240628_072029_create_table__product.php'? (yes|no) [no]:y
New migration created successfully.

```

---

Простые примеры миграций
------------------------

[](#простые-примеры-миграций)

### CreateTable.

[](#createtable)

#### Создание таблицы

[](#создание-таблицы)

Колонки: `id`, `created_at`, `updated_at` создадутся автоматически

```
