public static function upgradeDatabase($connection, $sTipo = 'ddl') { DBDataBaseMigration::createSchema($connection, 'configuracao'); DBDataBaseMigration::loadScripts($connection); $sScriptsNotApplied = "select * from configuracao.database_version_sql where db143_executado is false and db143_tipo = '{$sTipo}' order by db143_versao asc, db143_tipo desc "; $rScriptsNotApplied = @pg_query($connection, $sScriptsNotApplied); if (!$rScriptsNotApplied) { throw new Exception("ERRO: Ao executar SQL {$sScriptsNotApplied} " . pg_last_error()); } $iCount = pg_num_rows($rScriptsNotApplied); for ($x = 0; $x < $iCount; $x++) { $oScript = pg_fetch_object($rScriptsNotApplied, $x); $rExecute = @pg_query($connection, $oScript->db143_script); if (!$rExecute) { throw new Exception("ERRO: Ao executar SQL:\n {$oScript->db143_script} \n\nVersao:{$oScript->db143_versao}\nArquivo:{$oScript->db143_arquivo} " . pg_last_error() . "\n"); } $sUpdateApplied = " update configuracao.database_version_sql \n"; $sUpdateApplied .= " set db143_executado = true \n"; $sUpdateApplied .= " where db143_arquivo = '{$oScript->db143_arquivo}'\n"; $sUpdateApplied .= " and db143_versao = '{$oScript->db143_versao}' \n"; $sUpdateApplied .= " and db143_tipo = '{$oScript->db143_tipo}' \n"; $rUpdateApplied = @pg_query($connection, $sUpdateApplied); if (!$rUpdateApplied) { throw new Exception("ERRO: Ao executar SQL {$sUpdateApplied} " . pg_last_error()); } } return true; }