|
from sqlalchemy import create_engine, MetaData, Table, Column, String, Integer, Float, inspect |
|
|
|
|
|
engine = create_engine("sqlite:///database.db") |
|
metadata_obj = MetaData() |
|
|
|
|
|
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() |
|
|
|
|
|
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.") |
|
|
|
|
|
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() |
|
|
|
|