Beispiel #1
0
 public function alter()
 {
     $constraints = array_intersect(parent::$dev['constraints'], parent::$homolog['constraints']);
     $string = $stringResult = "";
     if (!empty($constraints)) {
         $restricao = new RestricaoBO();
         foreach ($constraints as $constraintInput) {
             list(parent::$schema, parent::$tabela, $constraint) = explode(".", $constraintInput);
             $schema = parent::$schema;
             $tabela = parent::$tabela;
             $dev = parent::$dev['schema'][$schema]['tabela'][$tabela]['constraint'][$constraint];
             $homolog = parent::$homolog['schema'][$schema]['tabela'][$tabela]['constraint'][$constraint];
             if ($dev != $homolog) {
                 parent::$constraint = $constraint;
                 $restricoes = $restricao->construct();
                 if ($restricoes != "") {
                     $stringResult = "\n\n\n" . str_pad(" ALTER DE CONSTRAINT ", 100, "-", STR_PAD_BOTH);
                     $string .= "\n\nALTER TABLE IF EXISTS {$schema}.{$tabela}";
                     $string .= "\n\tDROP CONSTRAINT IF EXISTS {$constraint};";
                     $string .= "\n\nALTER TABLE {$schema}.{$tabela}";
                     $string .= "\n\tADD CONSTRAINT {$constraint} {$restricoes};";
                 }
             }
         }
     }
     return $stringResult . $string;
 }
Beispiel #2
0
 public function addConstraint()
 {
     $fase = FaseQuery::ADD;
     $tabela = $this->estrutura[EstruturaQuery::TABELA];
     $homolog = $this->dao->restricao(SchemaType::HOMOLOG);
     $dev = $this->dao->restricao(SchemaType::DEV);
     $constraints = array_diff_assoc($dev, $homolog);
     $constraintsIntersect = array_intersect(array_keys($homolog), array_keys($dev));
     $string = "";
     if (!empty($constraints)) {
         $string = "\n\n\n-------------------- ADD CONSTRAINT --------------------";
         foreach ($constraints as $nameConstraint => $constraint) {
             $restricao = new RestricaoBO($constraint, $fase);
             $string .= "\nALTER TABLE {$tabela}\n\tADD CONSTRAINT {$nameConstraint} " . $restricao->constructConstraint() . ";\n";
         }
         foreach ($constraintsIntersect as $nameConstraint) {
             if ($homolog[$nameConstraint] != $dev[$nameConstraint]) {
                 $string .= "\nALTER TABLE {$tabela}\n\tADD CONSTRAINT {$nameConstraint} " . $restricao->constructConstraint() . ";\n";
             }
         }
     }
     return $string;
 }