public function add() { $tabelas = array_intersect(parent::$dev['tabelas'], parent::$homolog['tabelas']); $string = $stringResult = ""; if (!empty($tabelas)) { $propriedade = new PropriedadeBO(); parent::$fase = FaseQuery::ADD; foreach ($tabelas as $tabelaInput) { list(parent::$schema, parent::$tabela) = explode(".", $tabelaInput); $schema = parent::$schema; $tabela = parent::$tabela; if (isset(parent::$dev['schema'][$schema]['tabela'][$tabela]['coluna'])) { $dev = array_keys(parent::$dev['schema'][$schema]['tabela'][$tabela]['coluna']); } if (isset(parent::$homolog['schema'][$schema]['tabela'][$tabela]['coluna'])) { $homolog = array_keys(parent::$homolog['schema'][$schema]['tabela'][$tabela]['coluna']); } $colunas = array_diff($dev, $homolog); if (!empty($colunas)) { $stringResult = "\n\n\n" . str_pad(" ADD COLUMN ", 100, "-", STR_PAD_BOTH); foreach ($colunas as $coluna) { parent::$coluna = $coluna; $string .= "\n\nALTER TABLE {$schema}.{$tabela} ADD COLUMN {$coluna} "; $string .= $propriedade->construct() . ";"; } } } } return $stringResult . $string; }
public function alter() { $schema = parent::$schema; $tabela = parent::$tabela; $coluna = parent::$coluna; parent::$fase = FaseQuery::ALTER; $propriedadesBO = $this->properties; $dev = parent::$dev['schema'][$schema]['tabela'][$tabela]['coluna'][$coluna]; $homolog = parent::$homolog['schema'][$schema]['tabela'][$tabela]['coluna'][$coluna]; parent::$propriedades = array_diff_assoc($dev, $homolog); $string = $anteriorColuna = $anterior = ""; foreach (parent::$propriedades as $propriedade => $valor) { $anteriorColuna = "\n\n-- ESTADO ANTERIOR: {$coluna} -- "; $homologValor = parent::$homolog['schema'][$schema]['tabela'][$tabela]['coluna'][$coluna][$propriedade]; if (!isset($homologValor)) { $homologValor = "NULO"; } $anterior .= " {$propriedade} => {$homologValor}, "; $string .= GeradorPropriedades::gerarPropriedade($propriedadesBO[$propriedade], $valor); } $anterior = substr($anterior, 0, -2); return $anteriorColuna . $anterior . $string; }