In the future, we may have to add new table columns (for instance, see
We can somewhat decouple database changes from code changes by only using new columns when they are present.
However, we need to make sure that once the columns have been added and the system has started to use them, no older code writes to the DB (potentially causing inconsistencies because of not updating these columns).
To prevent this, code could check that it understands all columns it finds on startup. If there are unknown columns, it would need to abort and log an error that explains the compatibility issue.