""" Database Configuration for OCR Application Using Flask-SQLAlchemy with MySQL (PyMySQL driver) """ import os from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy() # Database configuration DB_CONFIG = { 'host': os.environ.get('DB_HOST', 'localhost'), 'port': os.environ.get('DB_PORT', '3306'), 'database': os.environ.get('DB_NAME', 'ocr_db'), 'user': os.environ.get('DB_USER', 'ocr_user'), 'password': os.environ.get('DB_PASSWORD', 'ocr_password123') } def get_database_uri(): """Generate SQLAlchemy database URI""" return f"mysql+pymysql://{DB_CONFIG['user']}:{DB_CONFIG['password']}@{DB_CONFIG['host']}:{DB_CONFIG['port']}/{DB_CONFIG['database']}?charset=utf8mb4" def init_db(app): """Initialize database with Flask app""" app.config['SQLALCHEMY_DATABASE_URI'] = get_database_uri() app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False app.config['SQLALCHEMY_ENGINE_OPTIONS'] = { 'pool_recycle': 3600, 'pool_pre_ping': True } db.init_app(app) with app.app_context(): db.create_all() print(f"✓ Database connected: {DB_CONFIG['database']}@{DB_CONFIG['host']}") return db