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