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_{имя таблицы на английском в нижнем регистре + конкретный пункт изменения на английском в нижнем регистре}