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; }
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; }