Migration from Txture 33 to Txture 34
Introduction
Txture used to use two databases internally:
- A graph database for all assets, properties and links
- SQLite as a relational database to keep configuration items such as reports, users, dashboards, importers etc.
Both the graph database and SQLite were embedded into Txture i.e. no separate database process was required. However, for large instances SQLite cannot keep up with the rest of Txture in terms of scalability and performance. As it turned into a performance bottleneck, it was decided to replace it with a standalone relational database: PostgreSQL 15.
This migration guide only affects on-premise deployments of Txture. SaaS instances are migrated automatically.
In addition to the database migration, it is necessary to migrate from Tomcat 9.x to Tomcat 10.1.x. This is required due to our migration from Spring 5.x to Spring 6 and therefore Jakarta EE 9+.
Migration Steps for the Database
As our philosophy is to keep upgrades as simple as possible for the admin of a Txture instance, we tried to make this possible for this migration as well. Essentially, the upgade comprises three steps:
- Back up your
txture_home
directory! - Set up a PostgreSQL server in version 15. This can be a DBaaS at your cloud provider, an installation on a separate VM or simply an additional container. See below for an example on how to add a PostgreSQL instance do your
docker-compose.yml
file. - Add the JDBC connection string to your
txture.properties
file. An example could look like this:More information on how to build the JDBC connection string can be found in the PostgreSQL documenation.txture.db.jdbc.url=jdbc:postgresql://{{ database hostname }}:5432/{{ database name }}?user={{ database username}}&password={{ database password }}
- Incorporate PostgreSQL in your backup strategy. We recommend to use
pg_dump
to create a backup of your PostgreSQL at a location that is part of your backup. However, depending on your PostgreSQL installation this might already be covered by other mechanisms (e.g. in the case of a DBaaS instance).
Migration Steps for Tomcat
There are no particular migration steps from Tomcat 9 to Tomcat 10 from a deployment / operations perspective. Tomcat provides a migration guide which is mostly intended for developers. Simply replace Tomcat with the newer 10.1.x version in the way it was installed before.
FAQ
My Linux distribution / cloud provider does not offer PostgreSQL 15. Can I use an older version?
Maybe. No specific features of PostgreSQL 15 are being used, but it was the most current version at the time of migration. Since all major versions of PostgreSQL are supported for the same timeframe of 5 years, we opted to use the newest version. Please let us know if you run into any troubles with older versions.
Can I use PaaS databases such as AWS RDS for PostgreSQL or Google Cloud SQL PostgreSQL?
Maybe. Let us know, if something doesn't work.
I need to verify a self-signed TLS certificate of my PostgreSQL server. How can this be achieved?
Place the certificate of your root CA in the ca-certs
directory within the txture_home
directory.