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