Upgrading OpenVDM
OpenVDM is upgraded by re-running the install script over the existing install. The step-by-step instructions for each release are in INSTALL.md, and what changed in each release is in CHANGELOG.md. This page summarizes them.
What the Installer Does and Doesn’t Update
Re-running utils/install-openvdm.sh is safe on an existing install. It asks the same
questions as the original install, with your previous answers as the defaults, and:
- pulls the latest code and runs
composer install --no-devandnpm installas the OpenVDM user; - installs Python 3.11 or later, and rebuilds the virtual environment (
venv/) if it was made with another Python version. Anything you installed into the venv yourself has to be installed again; - always rewrites
www/app/Core/Config.phpfromConfig.php.dist; - builds
server/etc/openvdm.yamlandwww/etc/datadashboard.yamlfrom their.disttemplates only if they don’t exist; - copies a plugin, parser or
bin/script.disttemplate only if your copy doesn’t exist yet; - rewrites the Apache, Samba and Supervisor configuration;
- doesn’t change the database. Database updates are run by hand (see below).
So before re-running it, set your settings files aside, and afterwards merge your changes into the new ones.
Upgrading from 2.15 to 2.16
- Set OpenVDM to Off and wait until no transfers or tasks are running.
- Set the three settings files aside, as the OpenVDM user, then update the code and
re-run the installer:
cd <openvdm_root> sudo -u <openvdm_user> cp www/app/Core/Config.php www/app/Core/Config.php.215 sudo -u <openvdm_user> mv server/etc/openvdm.yaml server/etc/openvdm.yaml.215 sudo -u <openvdm_user> mv www/etc/datadashboard.yaml www/etc/datadashboard.yaml.215 sudo -u <openvdm_user> git pull --ff-only sudo bash ./utils/install-openvdm.shConfig.phpis copied rather than moved because the installer reads the worker API key from it. - Back up the database and run the 2.16 update, which adds the FTP Server transfer
type:
sudo bash ./utils/export_openvdm_db.sh > ~/openvdm_backup_before_2.16.sql mysql -u root -p openvdm < ./database/openvdm_215_to_216.sqlRun it once; a second run stops with
Duplicate column name 'ftpServer'. - Copy the updated
.disttemplates you use over your copies (merge instead if you’ve customized them):- the GeoTIFF, TSG45, HPR and GNSS parsers;
server/plugins/rov_openrvdas_plugin.py(keep yourSEALOG_SERVER_URLandSEALOG_JWT);bin/build_remote_directory.py;www/app/templates/default/js/custom1.js(CARTO basemaps now need an API key).
- Merge your settings from the
.215copies into the new files (diffshows the differences). Keep the newopenvdm.yaml’sworkerApiKeyandtransferPublicData. In yourdatadashboard.yaml, removeloweringfrom the Position tab’sjsArray, and addcharts-zoomto any Lowering tab (see datadashboard.yaml). - Restart the workers and set OpenVDM back to On:
sudo supervisorctl restart openvdm:* - Run Rebuild Data Dashboard under Maintenance Tasks on the Configuration page.
Upgrading from 2.14 to 2.16
2.15 moved to PHP 8.2, and 2.16 needs Python 3.11 or later. There are two routes, and both run both database updates, in order:
mysql -u root -p openvdm < ./database/openvdm_214_to_215.sql
mysql -u root -p openvdm < ./database/openvdm_215_to_216.sql
- In place (Rocky Linux / AlmaLinux 8 or 9): set the settings files aside as
.214copies, check outmaster, and re-run the installer, which moves PHP to 8.2. - On a fresh OS (and always on Debian/Ubuntu, where 2.14 used Apache’s PHP 7.3 module): install 2.16 on a new server, restore the 2.14 database backup, run the two updates, and check the Shipboard Data Warehouse settings under Configuration → System.
Then merge your settings, bring each plugin and parser you use up to its 2.16 .dist
template, and run the Maintenance Tasks (Rebuild Cruise Directory, Re-export the
OpenVDM Configuration, Rebuild Data Dashboard, Rebuild MD5 Summary). Follow “Upgrading
from 2.14” in INSTALL.md for the full steps.
2.15 moved transfer logs out of the cruise directory to /var/log/openvdm
(TRANSFER_LOG_DIR in Config.php), and openvdm_214_to_215.sql
removes the old Transfer_Logs extra directory.
Older Releases
| From | Database update |
|---|---|
| 2.10 → 2.11 | database/openvdm_210_to_211.sql |
| 2.8 → 2.9 | database/openvdm_28_to_29.sql |
| 2.7 → 2.8 | database/openvdm_27_to_28.sql |
INSTALL.md has the steps for each.
Backing Up First
Back up the database before any upgrade, with utils/export_openvdm_db.sh as above or
with the backup and restore script. If the server is a
virtual machine, take a snapshot too.