Strumento di migrazione del database Phinx
Descrizione
Phinx consente agli sviluppatori di apportare modifiche e mantenere il database in modo efficiente. Evita la scrittura manuale di istruzioni SQL, utilizzando invece un potente API PHP per gestire le migrazioni del database. Gli sviluppatori possono gestire le proprie migrazioni del database utilizzando il controllo della versione. Phinx facilita il trasferimento dei dati tra database diversi e tiene traccia degli script di migrazione eseguiti, consentendo agli sviluppatori di concentrarsi sulla scrittura di sistemi migliori anziché preoccuparsi dello stato del database.
Indirizzo del progetto
https://github.com/cakephp/phinx
Installazione
composer require robmorgan/phinx
Indirizzo della documentazione ufficiale in cinese
Per un utilizzo dettagliato, è possibile consultare la documentazione ufficiale in cinese. Qui si spiega solo come configurare e utilizzare in webman.
https://tsy12321.gitbooks.io/phinx-doc/content/
Struttura della directory dei file di migrazione
.
├── app Directory dell'applicazione
│ ├── controller Directory dei controller
│ │ └── Index.php Controller
│ ├── model Directory dei modelli
......
├── database File di database
│ ├── migrations File di migrazione
│ │ └── 20180426073606_create_user_table.php
│ ├── seeds Dati di test
│ │ └── UserSeeder.php
......
Configurazione phinx.php
Creare un file phinx.php nella directory radice del progetto
<?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"
]
]
];
Suggerimenti per l'uso
Una volta uniti i file di migrazione, non è consentito modificarli nuovamente. In caso di problemi, è necessario creare un nuovo file di modifica o eliminazione per gestirli.
Regole di denominazione dei file di operazioni di creazione delle tabelle
{time(auto create)}_create_{nome tabella in minuscolo}
Regole di denominazione dei file di operazioni di modifica delle tabelle
{time(auto create)}_modify_{nome tabella in minuscolo + elemento di modifica in minuscolo}
Regole di denominazione dei file di operazioni di eliminazione delle tabelle
{time(auto create)}_delete_{nome tabella in minuscolo + elemento di modifica in minuscolo}
Regole di denominazione dei file di popolamento dei dati
{time(auto create)}_fill_{nome tabella in minuscolo + elemento di modifica in minuscolo}