Add new request fields to allow selection of the backup backend that is being used
When using the pgBackRest backend, you may select the type of backup (full, diff, incremental).
Backup system
When creating a backup, the system now checks for what backup backend is being used, it will run the correct backup function to match the backup backend.
I have also implemented the respective pgBackRest backup backend function. It runs the appropriate commands to create a pgBackRest backup (this ASSUMES pgBackRest is set up in the docker container + db and is accessible by docker run pgbackrest (with the right image and options that already comes from the pg_dump backup backend).
I have not added pgBackRest to the docker container and the user must do that manually (idk docker, and I did not want to learn it for this, the commands I listed in the impl worked for me outside of the container though, so just adding pgBackRest should be trivial to the end-user, or even as an extension for this PR)
Saftey
Full type saftey and checking for every user-inputted parameter above.
UI
I also added a tiny ui to create backups with this new system, it should integrate nicely with the existing backup creation UI.
Database Migration
I also made a migration file to add the new backup backend selection fields.
I hope mixing of “backup” and “backend” isn’t that hard to read lol.