feat(): Feito a inserção do schema do banco de dados firebird
This commit is contained in:
parent
2684503f81
commit
198c979da2
1 changed files with 38 additions and 2 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue