3
g+                 @   sl   d Z ddlZddlmZmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZ G d	d
 d
eZdS )z
Recreates the public schema for current database (PostgreSQL only).
Useful for Docker environments where you need to reset database
schema while there are active connections.
    N)BaseCommandCommandError)DEFAULT_DB_ALIAS)connections)settings)POSTGRESQL_ENGINES)RemovedInNextVersionWarningc                   s,   e Zd ZdZdZ fddZdd Z  ZS )Commandz&`reset_schema` command implementation.z-Recreates the public schema for this project.c                sf   t  j| |jddddddd |jdd	d
dtdd |jdtdt d |jddd
dddd d S )Nz	--noinputz
--no-inputstore_falseinteractiveTz:Tells Django to NOT prompt the user for input of any kind.)actiondestdefaulthelpz-Rz--routerstorerouterzBUse this router-database instead of the one defined in settings.pyz
--databasezGNominates a database to run command for. Defaults to the "%s" database.)r   r   z-Sz--schemaschemapublicz$Drop this schema instead of "public")superadd_argumentsadd_argumentr   )selfparser)	__class__ p/var/www/tester-filtro-web/env/lib/python3.6/site-packages/django_extensions/management/commands/reset_schema.pyr      s    

zCommand.add_argumentsc       
   
   O   s   |d }|d t kr,tjdtdd |d }tjj|}|d krLtd| |jd}|tkrftd|d	 }|d
 }|d rt	dj
||}nd}|dkrtd d S t| j &}	|	jdj
| |	jdj
| W d Q R X d S )Ndatabaser   z2--router is deprecated. You should use --database.   )
stacklevelzUnknown database %sZENGINEz8This command can be used only with PostgreSQL databases.NAMEr   r   z
You have requested a database schema reset.
This will IRREVERSIBLY DESTROY ALL data
in the "{}" schema of database "{}".
Are you sure you want to do this?

Type 'yes' to continue, or 'no' to cancel: yeszReset cancelled.zDROP SCHEMA {} CASCADEzCREATE SCHEMA {})r   warningswarnr   r   Z	DATABASESgetr   r   inputformatprintr   cursorexecute)
r   argsoptionsr   ZdbinfoZengineZdatabase_namer   Zconfirmr'   r   r   r   handle,   s,    
zCommand.handle)__name__
__module____qualname____doc__r   r   r+   __classcell__r   r   )r   r   r	      s   r	   )r/   r!   Zdjango.core.managementr   r   Z	django.dbr   r   Zdjango.confr   Zdjango_extensions.settingsr   Z#django_extensions.utils.deprecationr   r	   r   r   r   r   <module>   s   