Yes, I get it, but I told you why it had to be set up this way. What you envision is what I originally had in mind. However, it would only cover the one use case you and me can see in our heads. Unfortunately, this is not how 90% of the users want to use the software.
Trying to reconcile all those different use cases ends up requiring a re-implementation of the CRON system. I know because I put a lot of work into dissecting use cases, figuring out how to implement this, until I realised that I am basically re-inventing CRON.
Yes, you definitely need a bit of documentation for the site. But… you should have that already. Do you really remember how everything is set up on every site? Like, do you really have a mindmap of all the category and user group choices you made on each site, just two things which require far more structure and thought than your backup plan? You can't. Anything beyond an absolutely trivial site with 2–4 categories and just the basic Joomla! user groups requires documentation. Most trivial sites don't need incremental backups. So, what exactly would be the problem I am solving by introducing a restrictive interface?
Besides, your backup strategy is rather simplistic. I am pretty sure that your site does not grow massively in multiple folders. It only does so within a few specific folders, right? Let's say that it only grows by adding files into the images
folder. It also grows by adding database data to certain tables, let's say #__content
(which also means #__assets
, as these two go hand-in-hand) Here's a good backup strategy:
- Profile 1: Full site backup.
- Profile 2: Full site backup with incremental files. Exclude all top-level files and folders except
images
. Exclude all tables except #__content
and #__assets
.
Now your incremental backup is even more precise, and smaller.
As for storage limits, each backup profile has Quota settings. Enable remote quotas and set up your limits. For example, you could have the full site backup have a maximum of 2 backups kept, and the incremental backup have a maximum of 12 backups kept. Assuming a once-a-week full backup and a daily incremental backup (except for the full backup days) that would give you two weeks of rollback.
The problem arose when I made backup number 6, 7, etc. The system continued to make copies of only what changed, and the full backup from the remote server was deleted. If I didn't have the information I gained from you, I would have to create a new profile or figure out another solution.
I am sorry to tell you, but a. you failed to use it correctly and b. this is another reason why your idea would fail in the real world.
You should have marked the full site backup as a Frozen backup. Frozen records are never deleted automatically. Since you didn't freeze it, it got reaped by the quota settings you set up. You did not think it through.
And this is why your idea would fail in the real world. Let's say a user wants to take a full backup every Sunday and incremental backups every day. Let's say we magically let them do that through the interface. They would also be able to set up quotas. What if they set a count quota of 3? What if they set a size quota which is met on a Thursday? In both cases they delete their full backup and now they don't actually have a backup of their site. Are they going to blame themselves for their own choices? No. As you demonstrated, they will blame the software for doing exactly what the user told it to do.
FWIW, a few years ago we thought about creating a "wizard" for incremental backups. The wizard would create the two backup profiles and tell you how to set up their CRON jobs (or even create Joomla! Scheduled Tasks for you). However, we decided against it because it ultimately requires a modicum of responsibility from the user which appears to be incompatible with the target audience of such a feature.
The best we can do is document how incremental backups are supposed to work. This is already on my to-do list.
Nicholas K. Dionysopoulos
Lead Developer and Director
🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!