Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Back up to multiple repos from one profile #942

Open
m3nu opened this issue Apr 8, 2021 · 9 comments
Open

Back up to multiple repos from one profile #942

m3nu opened this issue Apr 8, 2021 · 9 comments
Labels
status:planning For large features, plan it out before implementation type:enhancement Improvement of an existing function type:feature New functionality

Comments

@m3nu
Copy link
Contributor

m3nu commented Apr 8, 2021

Then let's start out with multiple repos in one profile. For implementation, the repo-dropdown could have checkboxes, like this:

llcc0

Originally posted by @m3nu in #853 (comment)

@m3nu m3nu added status:planning For large features, plan it out before implementation type:feature New functionality labels Apr 8, 2021
@bastiencyr
Copy link
Collaborator

Hello @m3nu , do you need help for this ? I started implement this option

@m3nu
Copy link
Contributor Author

m3nu commented May 31, 2021

Any help is welcome to get improvements launched quicker and eventually add more active maintainers.

bastiencyr added a commit to bastiencyr/vorta that referenced this issue May 31, 2021
bastiencyr added a commit to bastiencyr/vorta that referenced this issue May 31, 2021
bastiencyr added a commit to bastiencyr/vorta that referenced this issue Jun 4, 2021
bastiencyr added a commit to bastiencyr/vorta that referenced this issue Jun 5, 2021
bastiencyr added a commit to bastiencyr/vorta that referenced this issue Jun 13, 2021
bastiencyr added a commit to bastiencyr/vorta that referenced this issue Oct 7, 2021
bastiencyr added a commit to bastiencyr/vorta that referenced this issue Oct 29, 2021
bastiencyr added a commit to bastiencyr/vorta that referenced this issue Oct 29, 2021
@Germain67
Copy link

Any news on this feature, I'd love to have it as I am frequently saving to several HDD at once :)

@real-yfprojects real-yfprojects added the type:enhancement Improvement of an existing function label Feb 8, 2023
@diivi
Copy link
Contributor

diivi commented Mar 22, 2023

Should this start with supporting only archive creation with multiple repositories, and then expand to handling other commands with multiple repositories (might need to discuss designs in that case)?
here's how Borgmatic works with rlist:
image

Vorta could handle this by adding a column to the archive table with the repo name. Or it could use multiple repositories for creating archives and a single repository for all other stuff (select repo in the archive tab to list its archive etc.)

If we end up using multiple repositories for every command Vorta runs, maybe this could also be a good long GSoC task?

@real-yfprojects
Copy link
Collaborator

How does borgmatic handle this?

@m3nu
Copy link
Contributor Author

m3nu commented Mar 30, 2023

They just run the same backup command (same source folders) against different repos. In our case it would add multiple BorgCreate jobs. We already have the internal job queue you added some time ago. Would it be enough to add multiple jobs there? May need small changes to specify the repo.

@real-yfprojects
Copy link
Collaborator

internal job queue you added some time ago

Actually @bastiencyr implemented it.

Would it be enough to add multiple jobs there?

That should work.

@bastiencyr
Copy link
Collaborator

bastiencyr commented Mar 31, 2023

This feature is more difficult to tackle than it looks.
You can see my old PR about this feature at #1005.

At this time, I didn't have the job queue and I realized that is was nearly impossible to implement this feature without it.

But there are still some issues and considerations to have :

  1. You need to consider the export feature and particularly the import feature. Check the conversation in the PR.
  2. Custom command for backup are added at the profile level for the moment. You need to choose if the command will be made at the profile or repo level
  3. For the archive, you also need to add a combo box to select the repo
  4. You need to add a table in the database (I didn't find other solutions) with all repos. And so you need to migrate the database to match the new schema.
  5. You have to change the stat information about repo size...
  6. ...

I probably forgot some points. All the UX had been made to handle only one repo. Changing this has impact through a lot of parts of the application. So, you need to understand many parts of the code.

Edit :
The table in the database permits to perform a many to many relationship. A profile can have many repos and a repos can belong to many profiles.
But maybe a one to many relation is enough. In this case the migration is easier.

@real-yfprojects
Copy link
Collaborator

  1. For the archive, you also need to add a combo box to select the repo

There are a lot of open questions on how to handle commands other than create with multiple repos. Especially when they are configurable like prune.

  1. You need to add a table in the database (I didn't find other solutions) with all repos.

We already have

class RepoModel(BaseModel):

All the UX had been made to handle only one repo.

The user interface might need a complete overhaul for this feature. UX is top priority imo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status:planning For large features, plan it out before implementation type:enhancement Improvement of an existing function type:feature New functionality
Projects
None yet
Development

No branches or pull requests

5 participants