"""Add default admin user Revision ID: add_default_admin_user Revises: e7e4ff171f7a Create Date: 2024-03-19 11:00:00.000000 """ from alembic import op import sqlalchemy as sa from sqlalchemy.sql import text from werkzeug.security import generate_password_hash # revision identifiers, used by Alembic. revision = 'add_default_admin_user' down_revision = 'e7e4ff171f7a' branch_labels = None depends_on = None def upgrade(): # Create default admin user connection = op.get_bind() # Generate password hash for 'q]H488h[8?.A' password_hash = generate_password_hash('q]H488h[8?.A') # Insert the admin user connection.execute( text(""" INSERT INTO "user" ( username, last_name, email, password_hash, is_admin, is_active, position, created_at, preferred_view ) VALUES ( 'Superadmin', 'Docupulse', 'administrator@docupulse.com', :password_hash, true, true, 'Administrator', CURRENT_TIMESTAMP, 'grid' ) """), {"password_hash": password_hash} ) def downgrade(): # Remove the default admin user connection = op.get_bind() connection.execute( text(""" DELETE FROM "user" WHERE email = 'administrator@docupulse.com' """) )