26874c3603
# Introduction When running the `run-instance-commands` on a migration failure the process wouldn't throw at all Leading to conditional flow to keep going whereas it should have stopped This update is very invasive and impacts all the nest commander registered commands We should keep in mind that it impacts the way we create and init database and so on But I think that's for the best, as cli that never exit 1 is counterintuitive
53 lines
1.6 KiB
Bash
Executable File
53 lines
1.6 KiB
Bash
Executable File
#!/bin/sh
|
|
set -e
|
|
|
|
setup_and_migrate_db() {
|
|
if [ "${DISABLE_DB_MIGRATIONS}" = "true" ]; then
|
|
echo "Database setup and migrations are disabled, skipping..."
|
|
return
|
|
fi
|
|
|
|
echo "Running database setup and migrations..."
|
|
|
|
# Run setup and migration scripts
|
|
has_schema=$(psql -tAc "SELECT EXISTS (SELECT 1 FROM information_schema.schemata WHERE schema_name = 'core')" ${PG_DATABASE_URL})
|
|
if [ "$has_schema" = "f" ]; then
|
|
echo "Database appears to be empty, running migrations."
|
|
yarn database:init:prod
|
|
fi
|
|
|
|
if ! yarn command:prod cache:flush; then
|
|
echo "Warning: Failed to flush cache before upgrade, but continuing startup..."
|
|
fi
|
|
|
|
if ! yarn command:prod upgrade; then
|
|
echo "Warning: Upgrade completed with errors. Some workspaces may not be fully migrated. Check logs for details."
|
|
fi
|
|
|
|
if ! yarn command:prod cache:flush; then
|
|
echo "Warning: Failed to flush cache after upgrade, but continuing startup..."
|
|
fi
|
|
|
|
echo "Successfully migrated DB!"
|
|
}
|
|
|
|
register_background_jobs() {
|
|
if [ "${DISABLE_CRON_JOBS_REGISTRATION}" = "true" ]; then
|
|
echo "Cron job registration is disabled, skipping..."
|
|
return
|
|
fi
|
|
|
|
echo "Registering background sync jobs..."
|
|
if yarn command:prod cron:register:all; then
|
|
echo "Successfully registered all background sync jobs!"
|
|
else
|
|
echo "Warning: Failed to register background jobs, but continuing startup..."
|
|
fi
|
|
}
|
|
|
|
setup_and_migrate_db
|
|
register_background_jobs
|
|
|
|
# Continue with the original Docker command
|
|
exec "$@"
|