
    X@	gu                     j    d dl mZ d dlmZ d dlmZmZ d dlZd dl	Z	d dl
Z
d dlZ G d de          ZdS )    )Command)DEFAULT_DB_ALIAS)BACKUP_ROOT
MEDIA_ROOTNc                   0     e Zd Zd Z fdZd Zd Z xZS )r   c                 :    |                     ddddd           d S )Nz-mz--media
store_truebackup_mediazjinclude media files in the backup,
            which can increase drastically the size disk space required)actiondesthelp)add_argument)selfparsers     2/opt/e-colle/accueil/management/commands/backup.pyadd_argumentszCommand.add_arguments   s=    )L~K 	 	L 	L 	L 	L 	L    c                 T   t           j                            t          d          }t           j                            t          d                    t
          j                                                                                            }| j	        
                    d           t                                          g ddddt          dd	d	d	g |
           | j	        
                    d           t           j                            |          }| j	        
                    d           t          |d          5 }t!          j        |d          5 }|
                    t!          j        |                                                     t          j        |           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t           j                            |          }d||z  z
  dz  }| j	        
                    d                    |                     ||fS )Nzecolle.jsonzecolle_{}.json.bz2u-   Début de la sauvegarde de la base de donnée)authcontenttypessessionsjson      TF)excludeformat	verbosityindentdatabase	tracebackuse_natural_foreign_keysuse_natural_primary_keysuse_base_managerprimary_keysoutputu+   sauvegarde de la base de donnée terminée
u$   Début compression de la sauvegarde
rbwbd   uG   Compression de la sauvegarde terminée (taux de compression: {:.02f}%)
)ospathjoinr   r   datetimedatetoday	isoformatstdoutwritesuperhandler   getsizeopenbz2compressreadremove)	r   r%   
bz2_outputtaille_fichierfichierfichier_bz2
taille_bz2compression	__class__s	           r   json_backupzCommand.json_backup   sI   k-88W\\+.B.I.I(-J]J]J_J_JiJiJkJk.l.lmm
IJJJBBB6,<%*U"F 	 	D 	D 	D 	HIII00ABBB&$ 	"7*T** "k!!#,w||~~">">???	&!!!" " " " " " " " " " " " " " "	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" W__Z00
N22C7dkklwxxyyy;&&s7   =GAF-!G-F1	1G4F1	5GGGc                    t           j                            t          d                    t
          j                                                                                            }| j	        
                    d           d}t          j        |d          5 }t          j        t                    D ]\  }}}|D ]}|dk    r|t           j                            t           j                            ||                    z  }|                    t           j                            ||          t           j                            t           j                            ||          t                               	 d d d            n# 1 swxY w Y   |dk    r)dt           j                            |          |z  z
  dz  }nd}| j	        
                    d                    |                     ||fS )	Nzecolle-media_{}.tar.xzu+   Début de la sauvegarde des fichiers media
r   zw:xzz
.gitignorer   r(   uH   Sauvegarde des fichiers media terminée (taux de compression: {:.02f}%)
)r)   r*   r+   r   r   r,   r-   r.   r/   r0   r1   tarfiler5   walkr   r4   addrelpath)	r   media_outputtaille_repertoirearchive_zipfolder
subfoldersfilesfiler?   s	            r   media_backupzCommand.media_backup%   s   w||K0H0O0OPXP]PcPcPePePoPoPqPq0r0rssHIII\,// 	|;-/WZ-@-@ | |)
E! | |D,,)RW__RW\\&RV=W=W-X-XX)#VT(B(BBGOOTVT[T`T`aghlTmTmoyDzDz{{{||	| 	| 	| 	| 	| 	| 	| 	| 	| 	| 	| 	| 	| 	| 	| q  RW__\::;LLLcQKKKellmxyyzzz +--s   C!FF
F
c                 n    |d         }|                                   |r|                                  d S d S )Nr
   )rA   rN   )r   
app_labelsoptionsr
   s       r   r3   zCommand.handle6   sH    ~. 	 	  	 r   )__name__
__module____qualname__r   rA   rN   r3   __classcell__)r@   s   @r   r   r   	   sh        L L L' ' ' ' '(. . ."             r   r   )(django.core.management.commands.dumpdatar   Backup	django.dbr   ecolle.settingsr   r   r)   rC   r6   r,    r   r   <module>r[      s    F F F F F F & & & & & & 3 3 3 3 3 3 3 3 				  



 1  1  1  1  1 f 1  1  1  1  1 r   