28 lines
873 B
Python
28 lines
873 B
Python
"""Database initialization"""
|
|
|
|
from flask_sqlalchemy import SQLAlchemy
|
|
from flask_migrate import Migrate
|
|
|
|
db = SQLAlchemy()
|
|
migrate = Migrate()
|
|
|
|
def init_db(app):
|
|
"""Initialize database with app"""
|
|
db.init_app(app)
|
|
migrate.init_app(app, db)
|
|
|
|
# Create tables
|
|
with app.app_context():
|
|
db.create_all()
|
|
|
|
# Create default admin user if not exists
|
|
from database.models import User
|
|
admin = User.query.filter_by(username='admin').first()
|
|
if not admin:
|
|
from config.settings import DEFAULT_ADMIN_USERNAME, DEFAULT_ADMIN_PASSWORD
|
|
admin = User(username=DEFAULT_ADMIN_USERNAME)
|
|
admin.set_password(DEFAULT_ADMIN_PASSWORD)
|
|
db.session.add(admin)
|
|
db.session.commit()
|
|
print(f"[DB] Created default admin user: {DEFAULT_ADMIN_USERNAME}", flush=True)
|