Update entrypoint.sh
This commit is contained in:
112
entrypoint.sh
112
entrypoint.sh
@@ -41,65 +41,75 @@ echo "PostgreSQL is up - executing command"
|
||||
# Run all initialization in a single Python script to avoid multiple Flask instances
|
||||
echo "Running initialization..."
|
||||
python3 -c "
|
||||
import sys
|
||||
from app import create_app
|
||||
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
|
||||
|
||||
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()
|
||||
with app.app_context():
|
||||
# Run migrations
|
||||
print('Running database migrations...')
|
||||
from flask_migrate import upgrade
|
||||
upgrade()
|
||||
|
||||
# Create events table
|
||||
print('Creating events table...')
|
||||
try:
|
||||
upgrade_events()
|
||||
print('Events table created successfully')
|
||||
# Run migrations
|
||||
print('Running database migrations...')
|
||||
from flask_migrate import upgrade
|
||||
upgrade()
|
||||
print('Database migrations completed successfully')
|
||||
|
||||
# Create default site settings
|
||||
print('Creating default site settings...')
|
||||
try:
|
||||
settings = SiteSettings.get_settings()
|
||||
print('Default site settings created successfully')
|
||||
except Exception as e:
|
||||
log_error('Error creating site settings', e)
|
||||
|
||||
# Create admin user if it doesn't exist
|
||||
print('Creating admin user...')
|
||||
try:
|
||||
admin = User.query.filter_by(email='administrator@docupulse.com').first()
|
||||
if not admin:
|
||||
print('Admin user not found, creating new admin user...')
|
||||
admin = User(
|
||||
username='administrator',
|
||||
email='administrator@docupulse.com',
|
||||
last_name='Administrator',
|
||||
company='DocuPulse',
|
||||
position='System Administrator',
|
||||
is_admin=True,
|
||||
is_active=True,
|
||||
preferred_view='grid'
|
||||
)
|
||||
admin.set_password('changeme')
|
||||
print('Admin user object created, attempting to add to database...')
|
||||
db.session.add(admin)
|
||||
try:
|
||||
db.session.commit()
|
||||
print('Default administrator user created successfully.')
|
||||
except Exception as e:
|
||||
db.session.rollback()
|
||||
log_error('Failed to commit admin user creation', e)
|
||||
raise
|
||||
else:
|
||||
print('Admin user already exists.')
|
||||
except Exception as e:
|
||||
log_error('Error during admin user creation/check', e)
|
||||
raise
|
||||
|
||||
# Create default templates
|
||||
print('Creating default templates...')
|
||||
try:
|
||||
create_default_templates()
|
||||
print('Default templates created successfully')
|
||||
except Exception as e:
|
||||
log_error('Error creating default templates', e)
|
||||
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
|
||||
print('Creating default site settings...')
|
||||
try:
|
||||
settings = SiteSettings.get_settings()
|
||||
print('Default site settings created successfully')
|
||||
except Exception as e:
|
||||
print(f'Error creating site settings: {e}')
|
||||
|
||||
# Create admin user if it doesn't exist
|
||||
print('Creating admin user...')
|
||||
admin = User.query.filter_by(email='administrator@docupulse.com').first()
|
||||
if not admin:
|
||||
admin = User(
|
||||
username='administrator',
|
||||
email='administrator@docupulse.com',
|
||||
last_name='None',
|
||||
company='docupulse',
|
||||
is_admin=True,
|
||||
is_active=True
|
||||
)
|
||||
admin.set_password('changeme')
|
||||
db.session.add(admin)
|
||||
db.session.commit()
|
||||
print('Default administrator user created successfully.')
|
||||
else:
|
||||
print('Admin user already exists.')
|
||||
|
||||
# Create default templates
|
||||
print('Creating default templates...')
|
||||
create_default_templates()
|
||||
log_error('Fatal error during initialization', e)
|
||||
sys.exit(1)
|
||||
"
|
||||
|
||||
# Start the application
|
||||
|
||||
Reference in New Issue
Block a user