Инструмент миграции базы данных Phinx

Описание

Phinx позволяет разработчикам легко изменять и поддерживать базу данных. Он избегает ручного написания SQL запросов, используя мощный PHP API для управления миграцией базы данных. Разработчики могут использовать управление версиями для своих миграций базы данных. Phinx упрощает перенос данных между различными базами данных. Он также позволяет отслеживать, какие миграционные скрипты были выполнены, так что разработчики могут больше не беспокоиться о состоянии базы данных, а сконцентрироваться на том, как написать более качественную систему.

Адрес проекта

https://github.com/cakephp/phinx

Установка

composer require robmorgan/phinx

Официальная китайская документация

Для подробного использования можно посмотреть официальную китайскую документацию; здесь будет описано, как настроить и использовать в webman.

https://tsy12321.gitbooks.io/phinx-doc/content/

Структура каталога миграций

.
├── app                           Каталог приложения
│   ├── controller                Каталог контроллеров
│   │   └── Index.php             Контроллер
│   ├── model                     Каталог моделей
......
├── database                      Файлы базы данных
│   ├── migrations                Файлы миграции
│   │   └── 20180426073606_create_user_table.php
│   ├── seeds                     Тестовые данные
│   │   └── UserSeeder.php
......

Настройка phinx.php

Создайте файл phinx.php в корневом каталоге проекта

<?php
return [
    "paths" => [
        "migrations" => "database/migrations",
        "seeds"      => "database/seeds"
    ],
    "environments" => [
        "default_migration_table" => "phinxlog",
        "default_database"        => "dev",
        "default_environment"     => "dev",
        "dev" => [
            "adapter" => "DB_CONNECTION",
            "host"    => "DB_HOST",
            "name"    => "DB_DATABASE",
            "user"    => "DB_USERNAME",
            "pass"    => "DB_PASSWORD",
            "port"    => "DB_PORT",
            "charset" => "utf8"
        ]
    ]
];

Рекомендации по использованию

После объединения кода миграционные файлы больше не подлежат изменению, и в случае проблем их нужно либо изменить, либо удалить.

Правила именования файлов операций создания таблиц

{время(автоматически создано)}_create_{имя_таблицы_на_английском_в_нижнем_регистре}

Правила именования файлов операций изменения таблиц

{время(автоматически создано)}_modify_{имя_таблицы_на_английском_в_нижнем_регистре+конкретное_изменение_на_английском_в_нижнем_регистре}

Правила именования файлов операций удаления таблиц

{время(автоматически создано)}_delete_{имя_таблицы_на_английском_в_нижнем_регистре+конкретное_изменение_на_английском_в_нижнем_регистре}

Правила именования файлов заполнения данными

{время(автоматически создано)}_fill_{имя_таблицы_на_английском_в_нижнем_регистре+конкретное_изменение_на_английском_в_нижнем_регистре}