Migration инструмент для миграции баз данных 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"
        ]
    ]
];

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

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

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

{time(auto create)}_create_{имя таблицы на английском в нижнем регистре}

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

{time(auto create)}_modify_{имя таблицы на английском в нижнем регистре + конкретный пункт изменения на английском в нижнем регистре}

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

{time(auto create)}_delete_{имя таблицы на английском в нижнем регистре + конкретный пункт изменения на английском в нижнем регистре}

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

{time(auto create)}_fill_{имя таблицы на английском в нижнем регистре + конкретный пункт изменения на английском в нижнем регистре}