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