[Django/Docker/Celery/Celery-beat] : Problème avec call_command('dumpdata')
Bonjour,
j'essaie de mettre en place une tâche programmée pour faire des 'backup' de ma base de données Postgresql.
j'ai une application Django déployée à l'aide de Docker.
Je souhaite maintenant utiliser Celery et Django-dbbackup
si je lance ma commande manuellement (py manage.py dbbackup --settings=core.settings.dev) j'ai bien un fichier default-jle-2020-12-29-174901.dump créé dans le répertoire spécifié dans settings.py
Mais lorsque que j'essaie d'exécuter cette même commande en utilisant call_command('dbbackup'), les données sont écrites dans un fichier (Writing file to default-682c25120a03-2020-12-29-164700.psql) mais impossible de le retrouver
je n'ai aucun message d'erreur indiquant que la sauvegarde n'a pas pu se faire
çà fait 2 jours que je bloque sur çà et je vais devenir fou
j'espère que quelqu'un pourra m'aider
d'avance merci,
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
DBBACKUP_STORAGE = 'django.core.files.storage.FileSystemStorage'
DBBACKUP_STORAGE_OPTIONS = {'location': BASE_DIR / 'backup'}
...
@shared_task
def backup():
if settings.DEBUG == 1:
return f"Could not be backed up: Debug is True"
else:
try:
# management.call_command('dumpdata','--verbosity=3')
sysout = sys.stdout
sys.stdout = open('dbbackupfile.json', 'w')
management.call_command('dumpdata','--verbosity=3')
sys.stdout = sysout
return f"Backed up successfully: {timezone.now()}"
except:
return f"Could not be backed up: {timezone.now()}" |