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}