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

De jQuery para Alpine.js: Um Guia Prático com Laravel e Componentes Reutilizáveis

De jQuery para Alpine.js: Um Guia Prático com Laravel e Componentes Reutilizáveis

Se você vem do jQuery e quer modernizar seus projetos com Alpine.js, esse tutorial é pra você. Vamos mostrar como... Leia mais

Como Instalar o PostgreSQL 16 no Linux Mint 21

Como Instalar o PostgreSQL 16 no Linux Mint 21

O PostgreSQL 16 ainda não está disponível nos repositórios oficiais do Linux Mint 21, então usaremos o repositório oficial do... Leia mais

Como Redimensionar Imagens Base64 com JavaScript e TypeScript

Como Redimensionar Imagens Base64 com JavaScript e TypeScript

Ao trabalhar com imagens base64 no front-end, é comum precisar redimensioná-las para melhorar o desempenho da aplicação, especialmente ao enviá-las... 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