Update entrypoint.sh

This commit is contained in:
2025-06-06 21:22:57 +02:00
parent 7a8005c263
commit 91469735d2

View File

@@ -41,34 +41,24 @@ echo "PostgreSQL is up - executing command"
# Run all initialization in a single Python script to avoid multiple Flask instances # Run all initialization in a single Python script to avoid multiple Flask instances
echo "Running initialization..." echo "Running initialization..."
python3 -c " python3 -c "
import sys
from app import create_app from app import create_app
from models import SiteSettings, db, User from models import SiteSettings, db, User
from migrations.add_events_table import upgrade as upgrade_events
from migrations.add_notifs_table import upgrade as upgrade_notifs
from utils.email_templates import create_default_templates from utils.email_templates import create_default_templates
def log_error(message, error=None):
print(f'ERROR: {message}', file=sys.stderr)
if error:
print(f'Error details: {str(error)}', file=sys.stderr)
app = create_app() app = create_app()
with app.app_context(): with app.app_context():
try:
# Run migrations # Run migrations
print('Running database migrations...') print('Running database migrations...')
from flask_migrate import upgrade from flask_migrate import upgrade
upgrade() upgrade()
print('Database migrations completed successfully')
# Create events table
print('Creating events table...')
try:
upgrade_events()
print('Events table created successfully')
except Exception as e:
print(f'Error creating events table: {e}')
# Create notifs table
print('Creating notifs table...')
try:
upgrade_notifs()
print('Notifs table created successfully')
except Exception as e:
print(f'Error creating notifs table: {e}')
# Create default site settings # Create default site settings
print('Creating default site settings...') print('Creating default site settings...')
@@ -76,30 +66,50 @@ with app.app_context():
settings = SiteSettings.get_settings() settings = SiteSettings.get_settings()
print('Default site settings created successfully') print('Default site settings created successfully')
except Exception as e: except Exception as e:
print(f'Error creating site settings: {e}') log_error('Error creating site settings', e)
# Create admin user if it doesn't exist # Create admin user if it doesn't exist
print('Creating admin user...') print('Creating admin user...')
try:
admin = User.query.filter_by(email='administrator@docupulse.com').first() admin = User.query.filter_by(email='administrator@docupulse.com').first()
if not admin: if not admin:
print('Admin user not found, creating new admin user...')
admin = User( admin = User(
username='administrator', username='administrator',
email='administrator@docupulse.com', email='administrator@docupulse.com',
last_name='None', last_name='Administrator',
company='docupulse', company='DocuPulse',
position='System Administrator',
is_admin=True, is_admin=True,
is_active=True is_active=True,
preferred_view='grid'
) )
admin.set_password('changeme') admin.set_password('changeme')
print('Admin user object created, attempting to add to database...')
db.session.add(admin) db.session.add(admin)
try:
db.session.commit() db.session.commit()
print('Default administrator user created successfully.') print('Default administrator user created successfully.')
except Exception as e:
db.session.rollback()
log_error('Failed to commit admin user creation', e)
raise
else: else:
print('Admin user already exists.') print('Admin user already exists.')
except Exception as e:
log_error('Error during admin user creation/check', e)
raise
# Create default templates # Create default templates
print('Creating default templates...') print('Creating default templates...')
try:
create_default_templates() create_default_templates()
print('Default templates created successfully')
except Exception as e:
log_error('Error creating default templates', e)
except Exception as e:
log_error('Fatal error during initialization', e)
sys.exit(1)
" "
# Start the application # Start the application