40 lines
1.3 KiB
Bash
40 lines
1.3 KiB
Bash
|
echo "${_group}Setting up / migrating database ..."
|
||
|
|
||
|
# Fixes https://github.com/getsentry/self-hosted/issues/2758, where a migration fails due to indexing issue
|
||
|
$dc up -d postgres
|
||
|
# Wait for postgres
|
||
|
RETRIES=5
|
||
|
until $dc exec postgres psql -U postgres -c "select 1" >/dev/null 2>&1 || [ $RETRIES -eq 0 ]; do
|
||
|
echo "Waiting for postgres server, $((RETRIES--)) remaining attempts..."
|
||
|
sleep 1
|
||
|
done
|
||
|
|
||
|
os=$($dc exec postgres cat /etc/os-release | grep 'ID=debian')
|
||
|
if [[ -z $os ]]; then
|
||
|
echo "Postgres image debian check failed, exiting..."
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
# Using django ORM to provide broader support for users with external databases
|
||
|
$dcr web shell -c "
|
||
|
from django.db import connection
|
||
|
|
||
|
with connection.cursor() as cursor:
|
||
|
cursor.execute('ALTER TABLE IF EXISTS sentry_groupedmessage DROP CONSTRAINT IF EXISTS sentry_groupedmessage_project_id_id_515aaa7e_uniq;')
|
||
|
cursor.execute('DROP INDEX IF EXISTS sentry_groupedmessage_project_id_id_515aaa7e_uniq;')
|
||
|
"
|
||
|
|
||
|
if [[ -n "${CI:-}" || "${SKIP_USER_CREATION:-0}" == 1 ]]; then
|
||
|
$dcr web upgrade --noinput --create-kafka-topics
|
||
|
echo ""
|
||
|
echo "Did not prompt for user creation. Run the following command to create one"
|
||
|
echo "yourself (recommended):"
|
||
|
echo ""
|
||
|
echo " $dc_base run --rm web createuser"
|
||
|
echo ""
|
||
|
else
|
||
|
$dcr web upgrade --create-kafka-topics
|
||
|
fi
|
||
|
|
||
|
echo "${_endgroup}"
|