64 lines
1.7 KiB
Bash
Executable File
64 lines
1.7 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -eu
|
|
|
|
echo "This script currently doesn't work correctly due to a bug in aerich. Do not use until said bug
|
|
is fixed"
|
|
echo "For more info: https://github.com/tortoise/aerich/issues/270"
|
|
exit
|
|
get_abs_filename() {
|
|
# $1 : relative filename
|
|
echo "$(cd "$(dirname "$1")" && pwd)/"
|
|
}
|
|
|
|
PROJECT_DIR="$(get_abs_filename $0)/.."
|
|
|
|
cleanup() {
|
|
# cleaning sqlite db
|
|
echo "Removing /tmp/foo"
|
|
rm -rf /tmp/tmp.db
|
|
|
|
# shutting down postgres container
|
|
cd $PROJECT_DIR
|
|
docker-compose -f docker-compose-migration.yml down
|
|
}
|
|
|
|
# making sure we leave the system clean
|
|
trap cleanup EXIT
|
|
|
|
|
|
poetry install
|
|
|
|
# I activate the env instead of using poetry run because the pyproject in the migration folder gives it problems
|
|
. "$(poetry env info -p)/bin/activate"
|
|
|
|
# I create a new SQLite db to run the migrations and generate a new one
|
|
echo "Generating SQLite migrations"
|
|
export DYNACONF_DB_URL="sqlite:///tmp/tmp.db"
|
|
cd "$PROJECT_DIR/mobilizon_reshare/migrations/sqlite/"
|
|
|
|
aerich upgrade
|
|
aerich migrate
|
|
|
|
# I use a dedicated docker-compose file to spin up a postgres instance, connect to it, run the migrations and generate a
|
|
# new one
|
|
|
|
echo "Generating postgres migrations"
|
|
export DYNACONF_DB_URL="postgres://mobilizon_reshare:mobilizon_reshare@localhost:5432/mobilizon_reshare"
|
|
cd $PROJECT_DIR
|
|
|
|
docker-compose -f docker-compose-migration.yml up -d
|
|
|
|
cd "$PROJECT_DIR/mobilizon_reshare/migrations/postgres/"
|
|
until [ "$(docker inspect mo-re_db_1 --format='{{json .State.Health.Status}}')" = "\"healthy\"" ];
|
|
do
|
|
echo "Waiting for postgres"
|
|
if [ "$(docker inspect mo-re_db_1 --format='{{json .State.Health.Status}}')" = "\"healthy\"" ]
|
|
then
|
|
break
|
|
fi
|
|
sleep 1s
|
|
done
|
|
aerich upgrade
|
|
aerich migrate
|