We have recently upgraded to discourse from vbulletin.
We are yet learning how to use discourse and its tools.
One of my concerns is disaster recovery.
We have automatic snapshots that we keep for long time.
We make daily backups using the tools inside discourse and saved in S3 bucket during 15 days.
Recovering from a snapshot is quite straight forward.
The idea is to recover from the last available snapshot that works and then use the last available backup to restore the content.
I needed a test machine to try some discourse plugins.
So it was a good opportunity to try the disaster recovery plan.
But instead of using a snapshot I tried to recover from scratch (just in case everything goes bad and we have to begin from scratch to restore an available backup).
I created a Debian machine, updated the software and installed discourse from scratch (with no plugins installed just the bare minimum).
I configured https to get it working and after that I tried to restore the last backup.
It failed while updating the database.
It complained about some columns not present in some tables. It rolled back and I had again the same content: almost nothing.
Reading the erros and some threads here I realized it might be caused by different discourse versions.
I checked for it. Yes the new forum had a version a bit newer than the original one.
I upgraded the original forum to the latest version and made a backup.
I tried to restore it and it again failed with similar errors.
So it might be that the new forum did not have installed the same plugins.
So I modified app.yml to install them rebuild the app. And tried again.
This time it worked nicely.
But it kept me worried.
If you have to restore the backup in a machine with exactly the same plugins and versions installed it will be quite difficult to get a successfull restore.
This time my old forum was up and running and it was easy to check the versions and update it to the newest one.
But when you are recovering from a disaster, you don’t have the chance to check versions or upgrade the software.
How do you solve it?
Does the backup have information about the installed plugins and discourse and plugin versions?
How do you create a basic discourse instance with the appropiate discourse and plugins versions in order to match that of your backup?
Thank you in advance for your guidance.