Skip to content

Commit

Permalink
Use a different method for running flyway migrations. (#157)
Browse files Browse the repository at this point in the history
  • Loading branch information
bcipriano authored Jan 22, 2019
1 parent 777af11 commit 6b7bf07
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions jenkins/extract_schema.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ ARTIFACT_DIRECTORY=$2
DB_USER=postgres
DB_NAME=cuebot_extract_$BUILD_ID
PG_CONTAINER=postgres-$BUILD_ID
FLYWAY_CONTAINER=flyway-$BUILD_ID
SCHEMA_DIRECTORY="$(pwd)/cuebot/src/main/resources/conf/ddl/postgres"

# Use migrations to populate a temporary database, then dump the full schema.
Expand All @@ -22,13 +23,15 @@ docker run --rm --name $PG_CONTAINER -d postgres
sleep 10
PG_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $PG_CONTAINER)
docker exec -t --user=$DB_USER $PG_CONTAINER createdb $DB_NAME
docker run --rm -v "${SCHEMA_DIRECTORY}/migrations:/flyway/sql" boxfuse/flyway \
-url=jdbc:postgresql://$PG_IP/$DB_NAME -user=$DB_USER migrate
docker run -td --rm --name $FLYWAY_CONTAINER --entrypoint bash boxfuse/flyway
docker cp ${SCHEMA_DIRECTORY}/migrations/* ${FLYWAY_CONTAINER}:/flyway/sql/
docker exec -t $FLYWAY_CONTAINER flyway -url=jdbc:postgresql://$PG_IP/$DB_NAME -user=$DB_USER -n migrate
docker exec -t --user=$DB_USER $PG_CONTAINER pg_dump --no-privileges --no-owner -s $DB_NAME \
| tee "${ARTIFACT_DIRECTORY}/schema-${BUILD_ID}.sql"

# The demo data gets its own build artifact too.
cp "${SCHEMA_DIRECTORY}/demo_data.sql" "${ARTIFACT_DIRECTORY}/demo_data-${BUILD_ID}.sql"

docker kill $FLYWAY_CONTAINER
docker kill $PG_CONTAINER

0 comments on commit 6b7bf07

Please sign in to comment.