Spaces:
Sleeping
Sleeping
from sqlalchemy import create_engine, MetaData, Table, Column, String, Integer, Float, inspect | |
# Initialize database engine (Persistent SQLite) | |
engine = create_engine("sqlite:///database.db") | |
metadata_obj = MetaData() | |
# Function to check existing tables | |
def get_existing_tables(): | |
""" | |
Returns a list of existing tables in the database. | |
Returns: | |
list: List of table names. | |
""" | |
inspector = inspect(engine) | |
return inspector.get_table_names() | |
# Create a default table if no SQL file is uploaded | |
def create_placeholder_table(): | |
""" | |
Creates a default 'users' table with example data if no SQL file has been uploaded. | |
""" | |
if "users" not in get_existing_tables(): | |
users_table = Table( | |
"users", metadata_obj, | |
Column("id", Integer, primary_key=True), | |
Column("name", String(50)), | |
Column("age", Integer), | |
Column("balance", Float) | |
) | |
metadata_obj.create_all(engine) | |
with engine.connect() as con: | |
con.execute(users_table.insert(), [ | |
{"id": 1, "name": "Alice", "age": 30, "balance": 100.50}, | |
{"id": 2, "name": "Bob", "age": 24, "balance": 250.75}, | |
{"id": 3, "name": "Charlie", "age": 35, "balance": 80.00} | |
]) | |
print("✅ Created placeholder 'users' table with sample data.") | |
# Function to initialize database (Prevents crashes) | |
def initialize_database(): | |
""" | |
Ensures the database starts up with a placeholder table if no SQL file is uploaded. | |
""" | |
tables = get_existing_tables() | |
if not tables: | |
print("No tables found. Creating a placeholder table...") | |
create_placeholder_table() | |
else: | |
print(f"Database initialized with tables: {tables}") | |
initialize_database() | |