Ejemplo n.º 1
0
try {
    db_log("Processo inicializado", $sFileLog);
    /**
     * Arquivo com configuracoes de acesso ao banco 
     */
    require_once PATH . '../../app/config/database.php';
    $oDatabase = new DATABASE_CONFIG();
    $aConfig = $oDatabase->default;
    db_log("Conectando a base", $sFileLog);
    $pConnection = @pg_connect("host={$aConfig['host']} dbname={$aConfig['database']} port={$aConfig['port']} user={$aConfig['login']} password={$aConfig['password']}");
    if (!$pConnection) {
        throw new Exception('Erro ao conectar ao banco de dados.');
    }
    pg_query($pConnection, 'begin');
    /**
     * Caminho com arquivos de atualizacao da base 
     */
    DBDataBaseMigration::$sPathScrips = PATH . "db";
    /**
     * Atualiza base caso exista alguem arquivo sql nao executado ainda
     */
    db_log("Atualizando base", $sFileLog);
    DBDataBaseMigration::upgradeDatabase($pConnection);
    pg_query($pConnection, 'commit');
    db_log("Processo Finalizado com Sucesso!", $sFileLog);
} catch (Exception $eException) {
    if ($pConnection) {
        pg_query($pConnection, 'rollback');
    }
    db_log($eException->getMessage(), $sFileLog);
}
 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;
 }