Initial commit: add compliance_checks table, per-check metadata on assets, and compliance audit trail
This commit is contained in:
40
init_db.py
Normal file
40
init_db.py
Normal file
@@ -0,0 +1,40 @@
|
||||
"""
|
||||
init_db.py — Run once after `flask db upgrade` to:
|
||||
1. Create all tables (idempotent)
|
||||
2. Create the default admin user if no admin exists
|
||||
|
||||
Usage:
|
||||
python init_db.py
|
||||
(or it runs automatically via Docker Compose CMD)
|
||||
"""
|
||||
import os
|
||||
from app import create_app
|
||||
from app.extensions import db
|
||||
from app.models.admin_user import AdminUser
|
||||
|
||||
app = create_app(os.environ.get('FLASK_ENV', 'development'))
|
||||
|
||||
with app.app_context():
|
||||
db.create_all()
|
||||
|
||||
# Only create default admin if none exists
|
||||
if AdminUser.query.count() == 0:
|
||||
default_user = os.environ.get('DEFAULT_ADMIN_USER', 'admin')
|
||||
default_pass = os.environ.get('DEFAULT_ADMIN_PASS', 'ChangeMe123!')
|
||||
default_email = os.environ.get('DEFAULT_ADMIN_EMAIL', 'admin@company.local')
|
||||
|
||||
admin = AdminUser(
|
||||
username=default_user,
|
||||
email=default_email,
|
||||
full_name='System Administrator',
|
||||
role='admin',
|
||||
)
|
||||
admin.set_password(default_pass)
|
||||
db.session.add(admin)
|
||||
db.session.commit()
|
||||
print(f'[init_db] Default admin created — username: {default_user}')
|
||||
print(f'[init_db] *** CHANGE THE DEFAULT PASSWORD IMMEDIATELY ***')
|
||||
else:
|
||||
print('[init_db] Admin users already exist — skipping default creation.')
|
||||
|
||||
print('[init_db] Database initialised.')
|
||||
Reference in New Issue
Block a user