feat(): Feito a inserção do schema do banco de dados firebird

This commit is contained in:
Kenio 2025-11-14 09:05:37 -03:00
parent 2684503f81
commit 198c979da2

View file

@ -3,9 +3,11 @@ import fdb
from fastapi import HTTPException
from pathlib import Path
from typing import List, Dict, Any
from abstracts.repository import BaseRepository
import json
class FirebirdSchemaExtractor:
class FirebirdSchemaExtractor(BaseRepository):
"""
Classe responsável por extrair toda a estrutura de um banco Firebird 4.
"""
@ -174,7 +176,13 @@ class FirebirdSchemaExtractor:
# -------------------- ESTRUTURA COMPLETA --------------------
def extract_all(self):
return {
"""
Extrai toda a estrutura do banco Firebird e salva o resultado
no banco MySQL antes de retornar.
"""
# 1. Extrai tudo do Firebird
data = {
"tables": self.get_tables(),
"primary_keys": self.get_primary_keys(),
"foreign_keys": self.get_foreign_keys(),
@ -183,3 +191,31 @@ class FirebirdSchemaExtractor:
"procedures": self.get_procedures(),
"triggers": self.get_triggers(),
}
# -----------------------------
# 2. INSERE NO BANCO MYSQL (NOVO TRECHO)
# -----------------------------
try:
# Dados a serem inseridos
json_data = json.dumps(data, ensure_ascii=False)
# Preenchimento de parâmetros.
params = {
'json_data': json_data # Deve ser None/0 para INSERT
}
# Inserção simples
sql = """INSERT INTO firebird_schema (schema_json) VALUES (%s) """
# Execução do SQL.
self.run_and_return(sql, params)
except Exception as e:
# Não interrompe o retorno, apenas registra o erro
print(f"[ERRO] Falha ao salvar no MySQL: {e}")
# -----------------------------
# 3. RETORNO FINAL
# -----------------------------
return data