Updating
How to update Tidemark Billing in Docker or from a new release zip, and what to check afterwards.
Updating means replacing the application code with a newer version and applying any database changes (migrations). The steps differ between Docker and the release zip.
Take a backup before you start, and read CHANGELOG.md for the version you are moving to.
Docker#
The container applies migrations itself every time it starts, once the installation exists.
- Pull the newer image:
docker compose pull. - Recreate the container:
docker compose up -d. - Open Settings → System and check Version.
Your data stays in the billing-data volume, so it survives the container being replaced. If you pinned a version tag such as 0.1.0 in your compose file, change the tag first.
The start-up script runs
php artisan migrate --forceand carries on even if that command fails. If something looks wrong after an update, rundocker compose logs billingand look for migration errors.
Release zip on shared hosting#
Nothing in the app runs core migrations for you after a zip upgrade, so you run them once.
-
Download the new
tidemark-billing-x.y.z.zipand unzip it on your computer. -
Upload its files over your installation, replacing the existing files.
-
Keep these from your old installation, and do not overwrite them:
.env- the
storage/folder database/database.sqlite, if you use SQLite- any plugin folders you added to
plugins/yourself
-
Run the migrations from the application folder:
php artisan migrate --force
The zip contains no .env, no storage/app/installed marker and no SQLite database, so those are never overwritten by an upload. Check that your upload tool did not delete them.
Plugins after an update#
The bundled plugins live in the plugins/ folder and are replaced with the new release. If a plugin's files are newer than its recorded version, Plugins shows an Apply update button, which runs the plugin's new migrations. If a plugin migration fails, it is undone and the old plugin files are put back.
Plugins you installed by upload go to plugins/ too, unless BILLING_EXTRA_PLUGINS_PATH is set. In Docker that is /data/plugins, which is part of the volume.
After updating#
- Check Settings → System for the new version number.
- Open an invoice and download its PDF.
- Run Run billing tasks now on the same page if you want to confirm the billing run still works.