Migration Ferramenta de Migração de Banco de Dados Phinx
Descrição
Phinx permite que os desenvolvedores modifiquem e mantenham o banco de dados de forma simples. Ele evita a escrita manual de SQL, utilizando uma poderosa API PHP para gerenciar migrações de banco de dados. Os desenvolvedores podem usar controle de versão para gerenciar suas migrações de banco de dados. Phinx facilita a migração de dados entre diferentes bancos de dados. Também rastreia quais scripts de migração foram executados, permitindo que os desenvolvedores se preocupem menos com o estado do banco de dados e se concentrem mais em como escrever sistemas melhores.
Endereço do Projeto
https://github.com/cakephp/phinx
Instalação
composer require robmorgan/phinx
Endereço da Documentação Oficial em Chinês
Para um uso detalhado, consulte a documentação oficial em chinês. Aqui falaremos apenas sobre como configurar o uso no webman.
https://tsy12321.gitbooks.io/phinx-doc/content/
Estrutura do Diretório de Arquivos de Migração
.
├── app Diretório da Aplicação
│ ├── controller Diretório do Controlador
│ │ └── Index.php Controlador
│ ├── model Diretório do Modelo
......
├── database Arquivos do Banco de Dados
│ ├── migrations Arquivos de Migração
│ │ └── 20180426073606_create_user_table.php
│ ├── seeds Dados de Teste
│ │ └── UserSeeder.php
......
Configuração do phinx.php
Crie o arquivo phinx.php no diretório raiz do projeto.
<?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"
]
]
];
Recomendações de Uso
Uma vez que os arquivos de migração sejam mesclados, não é permitido modificá-los novamente. Se ocorrer um problema, um novo arquivo de operação de modificação ou exclusão deve ser criado para tratá-lo.
Regras de Nomeação para Arquivos de Criação de Tabelas
{time(auto create)}_create_{nome da tabela em inglês minúsculo}
Regras de Nomeação para Arquivos de Modificação de Tabelas
{time(auto create)}_modify_{nome da tabela em inglês minúsculo + item específico a ser modificado em inglês minúsculo}
Regras de Nomeação para Arquivos de Exclusão de Tabelas
{time(auto create)}_delete_{nome da tabela em inglês minúsculo + item específico a ser modificado em inglês minúsculo}
Regras de Nomeação para Arquivos de Preenchimento de Dados
{time(auto create)}_fill_{nome da tabela em inglês minúsculo + item específico a ser modificado em inglês minúsculo}