Edurag_beta / app /functions /database_handling.py
Nugh75's picture
Creazione function e database_hundling
b2638ec
raw
history blame
2.21 kB
import logging
import os
import shutil
# -------------- DATABASE MANAGEMENT TAB FUNCTIONS --------------
def create_database(db_name):
logging.info(f"Creating database: {db_name}")
db_path = f"faiss_index_{db_name}"
if os.path.exists(db_path):
return f"Il database '{db_name}' esiste già."
try:
os.makedirs(db_path)
logging.info(f"Database {db_name} created successfully.")
return f"Database '{db_name}' creato con successo."
except Exception as e:
logging.error(f"Errore nella creazione del database: {e}")
return f"Errore nella creazione del database: {e}"
def delete_database(db_name):
db_path = f"faiss_index_{db_name}"
if not os.path.exists(db_path):
return f"Il database '{db_name}' non esiste."
try:
shutil.rmtree(db_path)
logging.info(f"Database {db_name} eliminato con successo.")
return f"Database '{db_name}' eliminato con successo."
except OSError as e:
logging.error(f"Impossibile eliminare il database {db_name}: {e}")
return f"Impossibile eliminare il database '{db_name}': {e}"
def modify_database(old_db_name, new_db_name):
old_db_path = f"faiss_index_{old_db_name}"
new_db_path = f"faiss_index_{new_db_name}"
if not os.path.exists(old_db_path):
return f"Il database '{old_db_name}' non esiste."
if os.path.exists(new_db_path):
return f"Il database '{new_db_name}' esiste già."
try:
os.rename(old_db_path, new_db_path)
return f"Database '{old_db_name}' rinominato in '{new_db_name}' con successo."
except Exception as e:
return f"Errore durante la modifica del database: {e}"
def list_databases():
try:
databases = []
for item in os.listdir():
if os.path.isdir(item) and item.startswith("faiss_index_"):
db_name = item.replace("faiss_index_", "")
databases.append(db_name)
# Ensure "default_db" is in the list
if "default_db" not in databases:
databases.append("default_db")
return databases
except Exception as e:
logging.error(f"Error listing databases: {e}")
return []