Files
local-ocr/database.py
2025-12-31 01:38:01 +08:00

40 lines
1.2 KiB
Python

"""
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