Giter Club home page Giter Club logo

dbsaver's People

Contributors

bastien70 avatar jmsche avatar toshy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

dbsaver's Issues

[Feature] Add docker image

Hey @bastien70 & @jmsche 👋

I like the idea and setup of this bundle, so I would like to know if you are open to having a docker image for it?
Even though I'm kind of new to making images myself, I've already started working on it, so if you are interested I'd love to create a PR and hear your feedback.

2FA missing

Hi,

Considering the backups are accessible online, are you planning to add 2FA?

Change admin/user privileges

The way to manage the privileges of admins and users does not seem the best.

Ideally in the future what we need:

Users and Admins can create storages, databases, backups (write/read)

Only admins can create users.

Admins and users can access all databases and backups without restrictions since it is internal to the company or the freelancer.

Allow to manually remove a backup

According to the (current) README:

Vous aurez la possibilité de supprimer ou télécharger un Backup.

Meaning:

You will be able to download or delete a backup.

But AFAICT the delete action is currently disabled in the Backup crud controller.

[Bug] Max backups option does not remove oldest backup but newest

Problem

The max backups option does not remove the oldest backups when it reaches it specified value, but it removes the most recently created one.

Reproduce

  1. Create a database and set max backups to for example 5.
  2. Make 5 manual backups and check if this is correctly inserted in the database.

image
3. Now make another backup (nr. 6) and check the database again.

image

No new backup seems to be created and the same backups are still present.

Now, if you set the max backups option for the database to 6, and then create a new backup, the following happens:

image

It inserted a new backup, but with ID 7.

Conclusion

Apparently the check with max backups is done in the clean method, which is the root problem of this issue. The implementation with the looping over the backups is incorrect, as it causes the removal of the most recent backup right after creation, which explains the initially strange jump in ID after increasing max backups option.

Possible solution

Adding a method to the BackupRepository with custom querybuilder for selecting the backups to be removed, and then delete them in the current clean method. Or maybe doctrine collection matching could come in handy here. Many different solutions possible.

[Feature] Add backups options support

Using Mysqldump, we can provide a whole bunch of options to customize what we want and don't want to keep on sql files.

An interesting feature would be, when adding a database, to offer the options to use for backups

Set upload configuration from dashboard

The user should be able to configure the upload destination from the dashboard.

  1. Remove VichUploader and use flysystem
  2. Create a CRUD to allow the user to create his adapters
  3. Modify the CRUD of the databases to let the user select which adapter to use

[Feature] Add an option for backups periodicity

Perhaps users would like one database to be backed up every week, and another every day or month.

Currently, the user himself configures a single CRON task with a certain periodicity which will be the same for all databases.

Instead, we could indicate to the user to configure a CRON task which will be executed every day and which will check if there are databases to backup, according to the requested periodicity.

[Feature] Add messenger for creating backups

Request

Currently database backups are created directly on request, which is blocking. Instead it could be handled more gracefully by using Messenger. So instead of directly creating a backup on the button click, we'll dispatch a message containing the information needed to create the backup (e.g. a Database entity), and then let the worker handle that job.

Additional information

  • This would require symfony/messenger to be added in composer.
  • An additional environment variable MESSENGER_TRANSPORT_DSN to be set by the user.
  • Additional information / links need to be supplied in docs on how to set up the workers to execute the jobs.

[Feature] Give possibility to import backup and restore database

An interesting idea in my opinion would be to offer the possibility to users to restore a backup from a .SQL file to import.

A typical case (and one I've encountered) would be when developing a web application. We have the application in production, and in preproduction. Sometimes we need to transfer the database from prod to preprod. This is where I think DbSaver might be able to do this?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.