More migration improvements.

This commit is contained in:
Buster "Silver Eagle" Neece 2018-11-04 22:35:49 -06:00
parent d630327c4f
commit 04f21f2dcb
2 changed files with 29 additions and 23 deletions

View File

@ -1,21 +1,14 @@
version: '2.2'
services:
migrate_influx:
image: influxdb:alpine
influxdb:
volumes:
- influx_data:/var/lib/influxdb
- ../migration:/tmp/migration
command: sh -c "influxd restore -metadir /var/lib/influxdb/meta /tmp/migration && influxd restore -database stations -datadir /var/lib/influxdb/data /tmp/migration"
- ./migration/influxdb:/tmp/migration
migrate_stations:
image: alpine:latest
cli:
volumes:
- ../stations:/tmp/source
- station_data:/tmp/dest
working_dir: /tmp/source
command: sh -c "mv ./* /tmp/dest/"
- ../stations:/tmp/migration
mariadb:
volumes:
- ./util/fixtures/01_docker_migration.sql:/tmp/01_docker_migration.sql
- ./migration/database.sql:/tmp/database.sql

View File

@ -16,19 +16,22 @@ if [ ! -f ./azuracast.env ]; then
cp ./azuracast.sample.env ./azuracast.env
fi
mkdir -p ./migration
mkdir -p ./migration/influxdb
# Dump MySQL data into fixtures folder
MYSQL_USERNAME=`awk -F "=" '/db_username/ {print $2}' env.ini | tr -d ' '`
MYSQL_PASSWORD=`awk -F "=" '/db_password/ {print $2}' env.ini | tr -d ' '`
mysqldump --add-drop-table -u$MYSQL_USERNAME -p$MYSQL_PASSWORD azuracast > util/fixtures/01_docker_migration.sql
mysqldump --add-drop-table -u$MYSQL_USERNAME -p$MYSQL_PASSWORD azuracast > migration/database.sql
read -n 1 -s -r -p "MySQL exported. Press any key to continue (Export InfluxDB)..."
# Dump InfluxDB data
mkdir -p /var/azuracast/migration
influxd backup /var/azuracast/migration
influxd backup -database stations /var/azuracast/migration
influxd backup migration/influxdb
influxd backup -database stations migration/influxdb
read -n 1 -s -r -p "InfluxDB exported. Press any key to continue (Install Docker)..."
@ -41,11 +44,7 @@ sudo chmod +x /usr/local/bin/docker-compose
sudo sh -c "curl -L https://raw.githubusercontent.com/docker/compose/${COMPOSE_VERSION}/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose"
# Pull Docker images
docker-compose pull
docker-compose -f docker-compose.yml -f docker-compose.migrate.yml run --rm migrate_influx
read -n 1 -s -r -p "InfluxDB data migrated to Docker. Press any key to continue (Uninstall Traditional AzuraCast)..."
read -n 1 -s -r -p "Docker installed. Press any key to continue (Uninstall Traditional AzuraCast)..."
# Run traditional uninstaller
chmod a+x uninstall.sh
@ -53,12 +52,17 @@ chmod a+x uninstall.sh
read -n 1 -s -r -p "Uninstall complete. Press any key to continue (Install AzuraCast in Docker)..."
# Spin up Docker
docker-compose pull
docker-compose -f docker-compose.yml -f docker-compose.migrate.yml up -d
# Run Docker AzuraCast-specific installer
docker-compose -f docker-compose.yml -f docker-compose.migrate.yml run --rm cat /tmp/01_docker_migration.sql | mysql -uazuracast -pazur4c457 -D azuracast
docker-compose -f docker-compose.yml -f docker-compose.migrate.yml run --rm migrate_stations
docker-compose -f docker-compose.yml -f docker-compose.migrate.yml run --rm influxdb import_folder /tmp/migration
docker-compose -f docker-compose.yml -f docker-compose.migrate.yml exec mariadb import_file /tmp/database.sql
docker-compose -f docker-compose.yml -f docker-compose.migrate.yml run --rm cli azuracast_migrate_stations /tmp/migration
docker-compose -f docker-compose.yml -f docker-compose.migrate.yml run --rm cli azuracast_install
# Spin up Docker
docker-compose -f docker-compose.yml -f docker-compose.migrate.yml down
docker-compose up -d
# Docker cleanup
@ -66,3 +70,12 @@ docker-compose rm -f
docker volume prune -f
docker rmi $(docker images | grep "none" | awk '/ / { print $3 }')
# Codebase cleanup
rm -rf /var/azuracast/www_tmp
rm -rf /var/azuracast/stations
rm -rf /var/azuracast/servers
find -maxdepth 1 ! -name migration ! -name . ! -name docker-compose.yml \
! -name .env ! -name azuracast.env \
-exec rm -rv {} \;