Ferramenta de migração de banco de dados Phinx

Descrição

O Phinx permite que os desenvolvedores modifiquem e mantenham o banco de dados de maneira concisa. Ele evita a escrita manual de declarações SQL, utilizando uma poderosa API em PHP para gerenciar migrações de banco de dados. Os desenvolvedores podem usar o controle de versão para gerenciar suas migrações de banco de dados. O Phinx facilita a migração de dados entre diferentes bancos de dados e pode rastrear quais scripts de migração foram executados, permitindo que os desenvolvedores se preocupem menos com o estado do banco de dados e foquem em como escrever sistemas melhores.

Endereço do projeto

https://github.com/cakephp/phinx

Instalação

composer require robmorgan/phinx

Documentação oficial em chinês

Para detalhes sobre o uso, consulte a documentação oficial em chinês. Aqui, apenas explicaremos como configurar e usar no webman.

https://tsy12321.gitbooks.io/phinx-doc/content/

Estrutura de diretórios de arquivos de migração

.
├── app                           Diretório da aplicação
│   ├── controller                Diretório de controladores
│   │   └── Index.php             Controlador
│   ├── model                     Diretório de modelos
......
├── database                      Arquivos do banco de dados
│   ├── migrations                Arquivos de migração
│   │   └── 20180426073606_create_user_table.php
│   ├── seeds                     Dados de teste
│   │   └── UserSeeder.php
......

Configuração phinx.php

Crie o arquivo phinx.php na 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"
        ]
    ]
];

Sugestões de uso

Uma vez que os arquivos de migração são mesclados no código, não é permitido modificá-los novamente. Se ocorrer um problema, será necessário criar um novo arquivo de modificação ou exclusão para resolver o problema.

Convenção de nomenclatura de arquivos de operações de criação de tabelas

{tempo (criado automaticamente)}_create_{nome da tabela em minúsculas em inglês}

Convenção de nomenclatura de arquivos de operações de modificação de tabelas

{tempo (criado automaticamente)}_modify_{nome da tabela em minúsculas em inglês + item de modificação específico em minúsculas em inglês}

Convenção de nomenclatura de arquivos de operações de exclusão de tabelas

{tempo (criado automaticamente)}_delete_{nome da tabela em minúsculas em inglês + item de modificação específico em minúsculas em inglês}

Convenção de nomenclatura de arquivos de preenchimento de dados

{tempo (criado automaticamente)}_fill_{nome da tabela em minúsculas em inglês + item de modificação específico em minúsculas em inglês}