Migration
in package
Classe base das migrations de db/migrations/AAAAMMDDHHMMSS_slug.php.
Cada arquivo de migration faz "return" de uma instancia desta classe (normalmente uma classe anonima) implementando up() e, quando suportar rollback (-dbu --rollback / --rollback-to), down(). Use \Sys\DB::exec / \Sys\DB::query dentro dos dois metodos - mesma abstracao do restante do sistema (config, Log, BusinessException).
Pros casos simples (criar/apagar tabela, coluna ou indice), use os helpers abaixo dentro de up() e NAO sobrescreva down() - ele e desfeito sozinho, na ordem inversa de como foi chamado:
function up() { $this->criar_tabela('tarefa_etiqueta', 'id INT NOT NULL PRIMARY KEY, nome VARCHAR(50) NOT NULL'); $this->criar_coluna('tarefa', 'etiqueta_id', 'INT NULL'); } // sem down() - desfaz sozinho: apaga a coluna, depois apaga a tabela.
Pra tudo que nao seja um desses (mudar dado, alterar tipo de coluna, procedure/trigger/view complexos etc), sobrescreva down() manualmente - nao da pra inferir com seguranca como desfazer um UPDATE ou um ALTER de tipo.
Tags
Table of Contents
Methods
- down() : mixed
- So chamado pelo Migration_Runner quando a migration NAO sobrescreve down() e nao tem nada salvo em atualizacao.down_auto pra essa migration (ex: aplicada antes dessa coluna existir). Sobrescreva down() vc mesmo pra qualquer coisa que os helpers nao cobrem.
- obter_reversiveis() : mixed
- Lista (na ordem inversa de execucao) do SQL que desfaz o que os helpers fizeram em up(). Usado pelo Migration_Runner pra persistir o "down" junto do registro de aplicacao - up() e down() rodam em execucoes separadas de "php cli.php", entao esse array em memoria nao sobrevive ate um eventual --rollback.
- up() : mixed
- apagar_coluna() : mixed
- Apaga a coluna, guardando o tipo/null/default atuais (SHOW COLUMNS) pra recriar identica no down().
- apagar_indice() : mixed
- Apaga o indice, guardando as colunas atuais (SHOW INDEX) pra recriar identico no down().
- apagar_tabela() : mixed
- Apaga a tabela, guardando a estrutura atual (SHOW CREATE TABLE) pra recriar identica no down().
- criar_coluna() : mixed
- criar_indice() : mixed
- criar_tabela() : mixed
Methods
down()
So chamado pelo Migration_Runner quando a migration NAO sobrescreve down() e nao tem nada salvo em atualizacao.down_auto pra essa migration (ex: aplicada antes dessa coluna existir). Sobrescreva down() vc mesmo pra qualquer coisa que os helpers nao cobrem.
public
down() : mixed
obter_reversiveis()
Lista (na ordem inversa de execucao) do SQL que desfaz o que os helpers fizeram em up(). Usado pelo Migration_Runner pra persistir o "down" junto do registro de aplicacao - up() e down() rodam em execucoes separadas de "php cli.php", entao esse array em memoria nao sobrevive ate um eventual --rollback.
public
obter_reversiveis() : mixed
up()
public
abstract up() : mixed
apagar_coluna()
Apaga a coluna, guardando o tipo/null/default atuais (SHOW COLUMNS) pra recriar identica no down().
protected
apagar_coluna(mixed $tabela, mixed $coluna) : mixed
Parameters
- $tabela : mixed
- $coluna : mixed
apagar_indice()
Apaga o indice, guardando as colunas atuais (SHOW INDEX) pra recriar identico no down().
protected
apagar_indice(mixed $tabela, mixed $indice) : mixed
Parameters
- $tabela : mixed
- $indice : mixed
apagar_tabela()
Apaga a tabela, guardando a estrutura atual (SHOW CREATE TABLE) pra recriar identica no down().
protected
apagar_tabela(mixed $tabela) : mixed
Parameters
- $tabela : mixed
criar_coluna()
protected
criar_coluna(mixed $tabela, mixed $coluna, mixed $definicao) : mixed
Parameters
- $tabela : mixed
- $coluna : mixed
- $definicao : mixed
criar_indice()
protected
criar_indice(mixed $tabela, mixed $indice, mixed $colunas) : mixed
Parameters
- $tabela : mixed
- $indice : mixed
- $colunas : mixed
criar_tabela()
protected
criar_tabela(mixed $tabela, mixed $definicao_colunas) : mixed
Parameters
- $tabela : mixed
- $definicao_colunas : mixed