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 fastapi import HTTPException
from pathlib import Path from pathlib import Path
from typing import List, Dict, Any 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. Classe responsável por extrair toda a estrutura de um banco Firebird 4.
""" """
@ -174,7 +176,13 @@ class FirebirdSchemaExtractor:
# -------------------- ESTRUTURA COMPLETA -------------------- # -------------------- ESTRUTURA COMPLETA --------------------
def extract_all(self): 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(), "tables": self.get_tables(),
"primary_keys": self.get_primary_keys(), "primary_keys": self.get_primary_keys(),
"foreign_keys": self.get_foreign_keys(), "foreign_keys": self.get_foreign_keys(),
@ -183,3 +191,31 @@ class FirebirdSchemaExtractor:
"procedures": self.get_procedures(), "procedures": self.get_procedures(),
"triggers": self.get_triggers(), "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