mirror of
https://github.com/opf/openproject.git
synced 2026-06-14 03:30:14 +00:00
update migration script, specifically fix the OP7 step
This commit is contained in:
committed by
Oliver Günther
parent
4e48a73a1c
commit
c322b42f68
@@ -44,11 +44,9 @@ DATABASE=openproject
|
||||
SKIP_STEP_1=${SKIP_STEP_1:-false}
|
||||
MIGRATION_TIMEOUT_S=600 # wait at most 10 minutes for the migration from 8 to 10 to finish
|
||||
|
||||
docker stop $MYSQL_CONTAINER && docker rm $MYSQL_CONTAINER || true
|
||||
docker stop $OP7_CONTAINER && docker rm $OP7_CONTAINER || true
|
||||
docker stop $OP8_CONTAINER && docker rm $OP8_CONTAINER || true
|
||||
docker stop $POSTGRES_CONTAINER && docker rm $POSTGRES_CONTAINER || true
|
||||
docker stop $MIGRATE_CONTAINER && docker rm $MIGRATE_CONTAINER || true
|
||||
docker stop $MYSQL_CONTAINER || true
|
||||
docker stop $POSTGRES_CONTAINER || true
|
||||
docker stop $MIGRATE_CONTAINER || true
|
||||
|
||||
if [[ ! "$SKIP_STEP_1" = "true" ]]; then
|
||||
# STEP 1: Migrate from current (7) to 8 still in a MySQL database
|
||||
@@ -58,7 +56,7 @@ if [[ ! "$SKIP_STEP_1" = "true" ]]; then
|
||||
echo
|
||||
echo "1.1) Starting mysql database..."
|
||||
if [[ ! `docker ps | grep $MYSQL_CONTAINER` ]]; then
|
||||
docker run -p $MYSQL_PORT:3306 -d --name $MYSQL_CONTAINER -e MYSQL_ROOT_PASSWORD=$MYSQL_PWD mysql:5.6
|
||||
docker run --rm -p $MYSQL_PORT:3306 -d --name $MYSQL_CONTAINER -e MYSQL_ROOT_PASSWORD=$MYSQL_PWD mysql:5.6
|
||||
if [[ $? -gt 0 ]]; then exit 1; fi
|
||||
sleep 10
|
||||
echo " database started"
|
||||
@@ -69,7 +67,7 @@ if [[ ! "$SKIP_STEP_1" = "true" ]]; then
|
||||
echo
|
||||
echo "1.2) Starting OpenProject 7"
|
||||
if [[ ! `docker ps | grep $OP7_CONTAINER` ]]; then
|
||||
docker run -d --name $OP7_CONTAINER openproject/openproject:7 # can use `run -it` directly because the image doesn't support it yet in version 8
|
||||
docker run --rm -d --name $OP7_CONTAINER openproject/openproject:7 bash -c 'sleep 7200'
|
||||
if [[ $? -gt 0 ]]; then exit 1; fi
|
||||
echo " OpenProject started"
|
||||
else
|
||||
@@ -79,7 +77,7 @@ if [[ ! "$SKIP_STEP_1" = "true" ]]; then
|
||||
echo
|
||||
echo "1.3) Starting OpenProject 8"
|
||||
if [[ ! `docker ps | grep $OP8_CONTAINER` ]]; then
|
||||
docker run -d --name $OP8_CONTAINER openproject/openproject:8-mysql # can use `run -it` directly because the image doesn't support it yet in version 8
|
||||
docker run --rm -d --name $OP8_CONTAINER openproject/openproject:8-mysql # can use `run -it` directly because the image doesn't support it yet in version 8
|
||||
if [[ $? -gt 0 ]]; then exit 1; fi
|
||||
echo " OpenProject started"
|
||||
else
|
||||
@@ -212,7 +210,7 @@ echo
|
||||
echo "2.4) Starting postgres database"
|
||||
|
||||
if [[ ! `docker ps | grep $POSTGRES_CONTAINER` ]]; then
|
||||
docker run -p $POSTGRES_PORT:5432 -d --name $POSTGRES_CONTAINER -e POSTGRES_PASSWORD=postgres postgres:$POSTGRES_VERSION
|
||||
docker run --rm -p $POSTGRES_PORT:5432 -d --name $POSTGRES_CONTAINER -e POSTGRES_PASSWORD=postgres postgres:$POSTGRES_VERSION
|
||||
if [[ $? -gt 0 ]]; then exit 1; fi
|
||||
sleep 10
|
||||
echo " database started"
|
||||
@@ -275,7 +273,22 @@ else
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "2.7) Making extra sure primary keys are named correctly"
|
||||
echo "2.7) Making sure needed postgres extensions are installed"
|
||||
|
||||
docker exec -it $POSTGRES_CONTAINER psql \
|
||||
-U postgres \
|
||||
-d $DATABASE \
|
||||
-c "create extension if not exists pg_trgm with schema public; create extension if not exists btree_gist with schema public;"
|
||||
|
||||
if [[ $? -gt 0 ]]; then
|
||||
echo " Could not create postgres extensions. You may have to do this yourself."
|
||||
exit 1
|
||||
else
|
||||
echo " Created needed postgres extensions."
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "2.8) Making extra sure primary keys are named correctly"
|
||||
|
||||
docker exec -it $MIGRATE_CONTAINER \
|
||||
bundle exec rake db:migrate:redo VERSION=20190502102512
|
||||
@@ -288,7 +301,7 @@ else
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "2.8) Migrating from 10 to current ($CURRENT_OP_MAJOR_VERSION)"
|
||||
echo "2.9) Migrating from 10 to current ($CURRENT_OP_MAJOR_VERSION)"
|
||||
|
||||
docker pull openproject/openproject:$CURRENT_OP_MAJOR_VERSION
|
||||
|
||||
@@ -315,7 +328,7 @@ if [[ "$DUMP_FORMAT" = "sql" ]]; then
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "2.9) Dumping migrated database to $DATABASE-migrated.$EXT"
|
||||
echo "2.10) Dumping migrated database to $DATABASE-migrated.$EXT"
|
||||
|
||||
OUTPUT_PARAMS="-F custom -f /data/$DATABASE-migrated.dump"
|
||||
OUTPUT_FILE="/dev/stdout"
|
||||
@@ -353,11 +366,9 @@ if [[ ! "$REMOVE_CONTAINERS" = "false" ]]; then
|
||||
echo
|
||||
echo "Cleaning up used docker containers..."
|
||||
|
||||
docker stop $MYSQL_CONTAINER && docker rm $MYSQL_CONTAINER
|
||||
docker stop $OP7_CONTAINER && docker rm $OP7_CONTAINER
|
||||
docker stop $OP8_CONTAINER && docker rm $OP8_CONTAINER
|
||||
docker stop $POSTGRES_CONTAINER && docker rm $POSTGRES_CONTAINER
|
||||
docker stop $MIGRATE_CONTAINER && docker rm $MIGRATE_CONTAINER
|
||||
docker stop $MYSQL_CONTAINER
|
||||
docker stop $POSTGRES_CONTAINER
|
||||
docker stop $MIGRATE_CONTAINER
|
||||
fi
|
||||
|
||||
echo "Finished after $(($SECONDS / 60)) minutes."
|
||||
|
||||
Reference in New Issue
Block a user