# Telescoop Backup
Backup your sqlite database to an S3 compatible provider.
## Quick start
### Configuration
- Add "Telescop Backup" to your INSTALLED_APPS setting like this::
```python
INSTALLED_APPS = [
...
'telescoop_backup',
]
```
- Include the Telescop Backup URLconf in your project urls.py like this::
```python
path('backup/', include('telescoop_backup.urls')),
```
- Define the following settings in `settings.py`
```python
BACKUP_ACCESS = 'my_access' # S3 ACCESS
BACKUP_SECRET = 'my_secret' # S3 SECRET KEY
BACKUP_BUCKET = 'my_project_backup' # S3 Bucket
BACKUP_KEEP_N_DAYS = 31 # Optional, defaults to 31
BACKUP_HOST = None # Optional, default to s3.fr-par.scw.cloud (Scaleway Storage in Paris)
# Optional, for compressing the backup
BACKUP_COMPRESS = True
BACKUP_RECOVER_N_WORKERS = 4 # Optional, default to 1
```
By default, old backups are removed in order not to take up too much space.
If you don't want them removed, just set a very large value for BACKUP_KEEP_N_DAYS.
### Backup
You can now backup with the `backup_db` management command :
- `python manage.py backup_db backup` to back up current database
- `python manage.py backup_db backup_media` to back up `settings.MEDIA_ROOT`
- `python manage.py backup_db list` to list previous backups
- `python manage.py backup_db recover [file_name]` to recover previous database
### View last backup and if it is recent
- `/backup/last-backup` shows the latest backup
- `/backup/backup-is-less-than-XX-hours-old` answers
`yes` (status 200) or `no` (status 500). This route can be used with a service
such as uptimerobot.com.
### Gitignore
If you use it in local environment, ignore the backup files
```
.telescoop_backup_last_backup
*.sqlite
```
Raw data
{
"_id": null,
"home_page": "https://gitlab.com/telescoop-public/django-apps/telescoop-backup",
"name": "telescoop-backup",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": null,
"author": "TelesCoop SARL SCOP",
"author_email": "contact@telescoop.fr",
"download_url": "https://files.pythonhosted.org/packages/7f/8f/5d08b320bf831fd7e7ab53bc6676a828b83e9e83c1b517b935273062ca13/telescoop_backup-0.5.1.tar.gz",
"platform": null,
"description": "# Telescoop Backup\n\nBackup your sqlite database to an S3 compatible provider.\n\n## Quick start\n\n### Configuration\n\n- Add \"Telescop Backup\" to your INSTALLED_APPS setting like this::\n\n```python\nINSTALLED_APPS = [\n ...\n 'telescoop_backup',\n]\n```\n\n- Include the Telescop Backup URLconf in your project urls.py like this::\n\n```python\n path('backup/', include('telescoop_backup.urls')),\n```\n\n- Define the following settings in `settings.py`\n\n```python\nBACKUP_ACCESS = 'my_access' # S3 ACCESS\nBACKUP_SECRET = 'my_secret' # S3 SECRET KEY\nBACKUP_BUCKET = 'my_project_backup' # S3 Bucket\nBACKUP_KEEP_N_DAYS = 31 # Optional, defaults to 31\nBACKUP_HOST = None # Optional, default to s3.fr-par.scw.cloud (Scaleway Storage in Paris)\n\n# Optional, for compressing the backup\nBACKUP_COMPRESS = True\nBACKUP_RECOVER_N_WORKERS = 4 # Optional, default to 1\n```\n\nBy default, old backups are removed in order not to take up too much space.\nIf you don't want them removed, just set a very large value for BACKUP_KEEP_N_DAYS.\n\n### Backup\n\nYou can now backup with the `backup_db` management command :\n\n- `python manage.py backup_db backup` to back up current database\n- `python manage.py backup_db backup_media` to back up `settings.MEDIA_ROOT`\n- `python manage.py backup_db list` to list previous backups\n- `python manage.py backup_db recover [file_name]` to recover previous database\n\n### View last backup and if it is recent\n\n- `/backup/last-backup` shows the latest backup\n- `/backup/backup-is-less-than-XX-hours-old` answers\n`yes` (status 200) or `no` (status 500). This route can be used with a service\nsuch as uptimerobot.com.\n\n### Gitignore\n\nIf you use it in local environment, ignore the backup files\n```\n.telescoop_backup_last_backup\n*.sqlite\n```\n",
"bugtrack_url": null,
"license": "BSD-3-Clause",
"summary": "Django app to backup Sqlite or Postgres database to an S3 Object Storage.",
"version": "0.5.1",
"project_urls": {
"Homepage": "https://gitlab.com/telescoop-public/django-apps/telescoop-backup"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "722615513909c2da2b27e756fdfb201780e88db93917b13c1b50d00290baa6d2",
"md5": "6a25a676f2a51e0d4f9fa786712e70c2",
"sha256": "4b8475b59161c88533e560194ebeb372efe76873d64add701fa9f01669d6b4e3"
},
"downloads": -1,
"filename": "telescoop_backup-0.5.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6a25a676f2a51e0d4f9fa786712e70c2",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 11358,
"upload_time": "2025-01-21T13:57:39",
"upload_time_iso_8601": "2025-01-21T13:57:39.225613Z",
"url": "https://files.pythonhosted.org/packages/72/26/15513909c2da2b27e756fdfb201780e88db93917b13c1b50d00290baa6d2/telescoop_backup-0.5.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7f8f5d08b320bf831fd7e7ab53bc6676a828b83e9e83c1b517b935273062ca13",
"md5": "84ce65b0062cc0edc2409586a4adf5fa",
"sha256": "52a36bacded60cb00eac68b85b485c4b35136a43b6f0f0f4775f7afe34887788"
},
"downloads": -1,
"filename": "telescoop_backup-0.5.1.tar.gz",
"has_sig": false,
"md5_digest": "84ce65b0062cc0edc2409586a4adf5fa",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 10207,
"upload_time": "2025-01-21T13:57:41",
"upload_time_iso_8601": "2025-01-21T13:57:41.472192Z",
"url": "https://files.pythonhosted.org/packages/7f/8f/5d08b320bf831fd7e7ab53bc6676a828b83e9e83c1b517b935273062ca13/telescoop_backup-0.5.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-21 13:57:41",
"github": false,
"gitlab": true,
"bitbucket": false,
"codeberg": false,
"gitlab_user": "telescoop-public",
"gitlab_project": "django-apps",
"lcname": "telescoop-backup"
}