예제 #1
0
 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;
 }
예제 #2
0
 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;
 }