Add ability to backup/restore Error Tracking data from/to ClickHouse
Overview
Context
GitLab backups are handled by the rails codebase. It's 'frontend' part is handled by Rake tasks that calls into 'backend' part consisted by code in lib/backup.
Backups can be triggered for individual components (like for the PostgreSQL database) or as a global snapshot of the installation that includes everything. The sequence in which part of the backup is triggered and dependencies are handled by the rake tasks.
This can be triggered accross different installation methods in varied of ways. They all internally call the rake task.
See the following documentation on how backup is triggered by different installation methods:
- Omnibus: https://docs.gitlab.com/ee/raketasks/backup_restore.html
- Docker: https://docs.gitlab.com/omnibus/settings/backups.html#creating-backups-for-gitlab-instances-in-docker-containers
- Helm: https://docs.gitlab.com/charts/architecture/backup-restore.html
Helm also relies on gitlab-rake approach similar to Omnibus: https://gitlab.com/gitlab-org/build/CNG/-/blob/34578277698967e999515b3e35c486f9c1cd05d4/gitlab-toolbox/scripts/bin/backup-utility#L216-227=