Upgrading Avalon 7.5 to Avalon 7.6

Requirements

Ruby 3.2.x and Node.js 14.x are recommended.

Config changes

As part of a fix for caption support on iOS devices, two new configuration options were added which define default values in the HLS manifest for caption language and label.

caption_default:
  # Language should be 2 or 3 letter ISO 639 codes
  language: 'en'
  name: 'English'


Upgrade Steps

For Manual Installations

  1. Install Ruby 3.x 
  2. Update gems, and migrate DB
bundle install --with production --without development test
RAILS_ENV=production bundle exec rake db:migrate

3. Install node.js 14.x (if needed)

4. Update JS dependencies

yarn install # in Avalon root dir

5. Update configuration, see Config changes above

6. Restart passenger (if using)

passenger-config restart-app

For Docker Installations

Avalon 7.6 is not compatible with Postgres versions 9.4 and below.

The instructions below will guide you through dumping the data from Postgres prior to upgrading and then loading it again after upgrade.

Note: avalon-docker 7.6.0 switches to a bind mount volume for storing Postgres data for safer persistence across upgrades.

Before upgrading, dump the contents of Postgres and backup all data from the db volume

docker-compose exec db pg_dumpall -U postgres -f /data/backup.sql
docker compose cp db:/data db/backup

Stop Avalon

docker-compose down

Update new code from avalon-docker

git checkout main
git pull

Pull new Avalon image. 

docker-compose pull avalon

Start only the db container and allow Postgres to initialize the new bind mount volume, load the dumped data, then stop the db container.

docker-compose up db
cp db/backup/backup.sql db_data
docker-compose exec db /bin/bash -c "psql -U postgres < /data/backup.sql"
docker-compose down

Check config changes then replace the Avalon containers

docker-compose up avalon worker

You can also build your own image, Docker Buildkit is recommended

docker-compose build avalon