PauloRB.dev

Desenvolvedor de Software

Código python para rodar arquivos .sql no postgres | PauloRB.dev Código python para rodar arquivos .sql no postgres – PauloRB.dev
Código python para rodar arquivos .sql no postgres

Código python para rodar arquivos .sql no postgres

Nesta semana o Postgres vem me desafiando, e meu pc também, porque por algum motivo o PGADMIN está demorando uma eternidade para rodar o procedimento de restore de backups.

Numa dessas situações do dia-a-dia com o restore do PGADMIN não querendo funcionar o jeito foi rodar um arquivo .sql e que pasme por ter um tamanho maio a ferramenta de sql do PGADMIN não abria o bendito então o jeito foi usar nosso bom e velho python.

Segue o Script:

#pip install psycopg2 - você deve instalar esta biblioteca

import psycopg2

# Função para executar o script SQL
def executar_script_sql(arquivo_sql, conexao):
    try:
        # Abrir o arquivo .sql
        with open(arquivo_sql, 'r') as f:
            script_sql = f.read()

        # Criar um cursor e executar o script SQL
        with conexao.cursor() as cursor:
            cursor.execute(script_sql)
            conexao.commit()
            print("Script executado com sucesso!")

    except Exception as e:
        print(f"Ocorreu um erro: {e}")
        conexao.rollback()
    finally:
        conexao.close()

# Conectar ao banco de dados PostgreSQL
def conectar_postgres():
    try:
        conexao = psycopg2.connect(
            host="localhost",  # Substitua pelo host correto
            database="dev_sge_quatro",  # Substitua pelo nome correto do banco de dados
            user="postgres",  # Substitua pelo usuário correto
            password="postgres"  # Substitua pela senha correta
        )
        return conexao

    except Exception as e:
        print(f"Erro ao conectar ao banco de dados: {e}")
        return None

if __name__ == "__main__":
    conexao = conectar_postgres()
    if conexao:
        executar_script_sql('dotbsc.sql', conexao)

Outra forma interessante de realizar a leitura de arquivos .sql é através do script abaixo que faz a execução dos scripts diretamente no psql do postgres:

import subprocess

def executar_script_com_psql(arquivo_sql):
    try:
        # Chama o comando psql e executa o arquivo SQL
        comando = [
            'psql', 
            '-h', 'localhost',  # Substitua pelo host correto
            '-d', 'dev_sge',  # Substitua pelo banco de dados correto
            '-U', 'postgres',  # Substitua pelo usuário correto
            '-p', '5432',  # Porta correta
            '-f', arquivo_sql  # Arquivo SQL a ser executado
        ]
        # Executa o comando e solicita a senha do usuário
        subprocess.run(comando, check=True)
        print("Script executado com sucesso!")

    except subprocess.CalledProcessError as e:
        print(f"Ocorreu um erro ao executar o script: {e}")

if __name__ == "__main__":
    executar_script_com_psql('pilar_lancar_acoes_part1.sql')

Mais Posts

Jogo da Velha com HTML, CSS e JavaScript

Jogo da Velha com HTML, CSS e JavaScript

Vamos hoje desenvolver uma atividade que é comum em alguns testes de programação onde iremos desenvolver um simples jogo da... Leia mais

Script para automatizar as instalações de extensões do php em distribuições LINUX

Script para automatizar as instalações de extensões do php em distribuições LINUX

Publiquei neste artigo https://paulorb.dev/alternar-entre-multiplas-versoes-no-php/ formas de como instalar diversas versões do PHP em distros Linux mas surgiu um problema que... Leia mais

Como instalar a Linguagem ELIXIR no Linux.

Como instalar a Linguagem ELIXIR no Linux.

Elixir é uma linguagem de programação dinâmica e funcional, desenvolvida por José Valim em 2011, projetada para construir aplicações escaláveis... Leia mais

Instalação e Configuração do OpenSSH no Ubuntu

Instalação e Configuração do OpenSSH no Ubuntu

Este tutorial rápido e objetivo vai te mostrar como instalar e configurar o OpenSSH no Ubuntu, além de incluir algumas... Leia mais