examinal-api / create_db.py
aryanmirza01's picture
FYP Clean Final Push
419bd6e
import pymysql
from app.config import settings
def create_db():
# Parse connection string
# mysql+pymysql://root:@localhost:3306/examinal
url = settings.DATABASE_URL
if not url.startswith("mysql"):
print("Not a MySQL connection string.")
return
# Extract info (very simple parsing)
# This assumes mysql+pymysql://user:pass@host:port/db
parts = url.split("://")[1].split("/")
base_url = parts[0]
db_name = parts[1]
auth_host = base_url.split("@")
if len(auth_host) > 1:
user_pass = auth_host[0].split(":")
user = user_pass[0]
password = user_pass[1] if len(user_pass) > 1 else ""
host_port = auth_host[1].split(":")
host = host_port[0]
port = int(host_port[1]) if len(host_port) > 1 else 3306
else:
user = "root"
password = ""
host_port = auth_host[0].split(":")
host = host_port[0]
port = int(host_port[1]) if len(host_port) > 1 else 3306
try:
conn = pymysql.connect(
host=host,
port=port,
user=user,
password=password
)
cursor = conn.cursor()
cursor.execute(f"CREATE DATABASE IF NOT EXISTS {db_name}")
print(f"Database '{db_name}' ensured.")
conn.close()
except Exception as e:
print(f"Error creating database: {e}")
if __name__ == "__main__":
create_db()