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
- Install Ruby 3.x
- 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