Major Version Update Instructions
Follow these steps to update your Limelight installation to a newer major version number. E.g., update your 2.x.x installation of Limelight to the latest release of 3.x.x.
This guide assumes you have completed all the steps in the Installing Limelight tutorial.
Important
Never update to a new major version that is more than one ahead of your current version! If you are on version 2.x.x (major version 2), you can only go to 3.x.x (major version 3). After 3.x.x is running, you may then update to version 4.x.x, and so on.
To update multiple steps (e.g., from major version 2 to 5), follow all of these steps to upgrade from major version 2 to 3, then repeat steps 8 and 9 once to update from major version 3 to 4, then repeat steps 8 and 9 again to update from major version 4 to 5.
You can see your current Limelight major version by following the instructions on our Update Limelight instructions. This must be done before following these steps.
1. Open a Terminal
On Linux and MacOS, open a normal terminal. On Windows, if you followed our instructions for installing Docker, follow the directions on our Docker Installation Tutorial to open a Linux terminal.
2. Backup the Limelight Database
It is critical that you backup your database before updating it. Please follow the instructions for backing up MySQL Data on the Back Up and Restore Limelight Data instructions page.
3. Shutdown Limelight
Go into your Limelight project directory:
cd ~/limelight
If you have not customized the data locations for Limelight, type the following to start Limelight:
sudo docker-compose down
If you have customized the data locations for Limelight by following our Customize Data Locations tutorial, type the following:
sudo docker-compose -f docker-compose-custom-data.yml down
4. Download the Latest Installation Package
Important
This process will overwrite your your docker-compose.yml
and docker-compose-custom-data.yml
files. Most
likely you have not changed either file, but if you have, back it up by typing:
# back up whichever file you have customized: cp docker-compose.yml docker-compose-customized.yml cp docker-compose-custom-data.yml docker-compose-custom-data-customized.yml
Download the latest Limelight Docker Compose files:
# Download Limelight Docker Compose files curl -L "https://github.com/yeastrc/limelight-core/releases/latest/download/docker-compose-files.tgz" -o docker-compose-files.tgz # Expand the archive tar -xvzf docker-compose-files.tgz
Note
If you prefer to download a ZIP file or if you prefer to download the file another way, the latest release can be found on GitHub at https://github.com/yeastrc/limelight-core/releases/latest
If you have customized your docker-compose.yml
or docker-compose-custom-data.yml
files, copy your
customizations from the backup you made above into the new docker-compose.yml
or docker-compose-custom-data.yml
file.
5. Update Other Limelight Components
Use the following command to download the latest version of all of the Limelight application components:
sudo docker-compose pull
6. Add Any New .env
File Entries
This is only necessary if you have customized your data storage locations, as described on our Customize Data Locations tutorial. If you have not customized the data storage locations for Limelight, you can skip this step.
You will need to configure any new data locations needed by the new release of Limelight. All required
data locations are listed at our Customize Data Locations tutorial under step 2. Follow
the directions for step 2 to add any missing configuration values to your .env
file.
7. Bring up Limelight
If you have not customized the data locations for Limelight, type the following to start Limelight:
sudo docker-compose up --detach
If you have customized the data locations for Limelight by following our Customize Data Locations tutorial, type the following:
sudo docker-compose -f docker-compose-custom-data.yml up --detach
8. Perform Necessary Database Updates
Determine If Database Update Is Necessary
Type the following, but replace 3
in the first line with the major version number you are upgrading to.
export LIMELIGHT_NEW_VERSION="3"
ls database_scripts/version_upgrades/$LIMELIGHT_NEW_VERSION/version_upgrade.sql
Important
It is critical that you set the LIMELIGHT_NEW_VERSION
to the correct version number. If you are upgrading
from major version 2, you must set this number to 3
. Never set this number to be more than 1 higher than
your current version–doing so may corrupt your database.
If the response is something like:
ls: cannot access 'database_scripts/version_upgrades/3/version_upgrade.sql': No such file or directory
Then you do not need to perform a database upgrade and you can skip this step and step 8.
If you see something like:
database_scripts/version_upgrades/3/version_upgrade.sql
Then you do need to perform a version upgrade.
Perform The Database Update
Run the following command to update the database. This assumes you ran the export LIMELIGHT_NEW_VERSION=
command
given above.
Note
MYSQL_ROOT_PASSWORD
should be replaced with the actual root password for your MySQL installation. If you followed
our Installing Limelight tutorial, this will be in your .env
file as described on step 4 of the tutorial.
cat database_scripts/version_upgrades/$LIMELIGHT_NEW_VERSION/version_upgrade.sql | sudo docker exec -i limelight-mysql sh -c 'exec mysql -u root -p"MYSQL_ROOT_PASSWORD" limelight'
9. Restart Limelight
If you did not perform a database update in step 7, you can skip this step.
If you have not customized the data locations for Limelight, type the following to start Limelight:
sudo docker-compose down
sudo docker-compose up --detach
If you have customized the data locations for Limelight by following our Customize Data Locations tutorial, type the following:
sudo docker-compose -f docker-compose-custom-data.yml down
sudo docker-compose -f docker-compose-custom-data.yml up --detach
10. (Optional) Remove Orphaned Docker Images
If new Limelight components are pulled down using the command above, the replaced Docker images will be “orphaned”. To remove the old Docker images and free up disk space, you can use the following command:
sudo docker system prune
You will see the following output:
WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all dangling images - all dangling build cache Are you sure you want to continue? [y/N]
Enter y
and hit enter. The orphaned images will be removed.