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

Gerando Dados Fictícios para Análise de Compras em Python

Gerando Dados Fictícios para Análise de Compras em Python

Ao realizar estudos de análise de dados ou ao testar sistemas que lidam com grandes volumes de informações, é comum... Leia mais

Git fetch: Como Verificar alterações sem aplicá-las

Git fetch: Como Verificar alterações sem aplicá-las

O Git é uma ferramenta poderosa para controle de versão, amplamente utilizada por desenvolvedores. Ao trabalhar com repositórios Git, é... Leia mais

Solucionando Problemas de Conexão no PostgreSQL: Um Guia Prático

Solucionando Problemas de Conexão no PostgreSQL: Um Guia Prático

Quando se trata de gerenciar bancos de dados, o PostgreSQL se destaca como uma escolha robusta e flexível para desenvolvedores... Leia mais

Tutorial: Exportando Imagens Base64 Usando Laravel Excel

Tutorial: Exportando Imagens Base64 Usando Laravel Excel

Neste tutorial, vamos aprender como exportar uma lista de cadastros de clientes para uma planilha Excel, incluindo as fotos dos... Leia mais