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

Rascunho para estudo de programação orientada a objetos em Python

Rascunho para estudo de programação orientada a objetos em Python

A orientação a objetos (OO) é um paradigma de programação central em Python, que facilita a organização e estruturação do... Leia mais

Adicionar e remover classes CSS com Vanilla Javascript

Adicionar e remover classes CSS com Vanilla Javascript

Adicionar e remover classes CSS com JQUERY é uma atividade muito simples, mas também através do javascript puro conseguimos o... Leia mais

Como rodar Laravel no WSL com Valet Linux (de verdade)

Como rodar Laravel no WSL com Valet Linux (de verdade)

Sim, dá pra desenvolver Laravel no Windows sem sofrer. Mas você precisa fazer do jeito certo: usando WSL + Valet... Leia mais

Guia de Deploy de Aplicação Laravel com Nginx em uma VPS com Ubuntu e HTTPS em um VPS

Guia de Deploy de Aplicação Laravel com Nginx em uma VPS com Ubuntu e HTTPS em um VPS

Neste post, você aprenderá a fazer o deploy de uma aplicação Laravel em uma VPS rodando Ubuntu com o servidor... Leia mais