ó
ø¢TQc           @   sÔ   d  d l  m Z d  d l 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 m Z d  d l m Z m Z m Z m Z m Z d  d	 l m Z d  d
 l m Z d e f d „  ƒ  YZ d S(   iÿÿÿÿ(   t   make_optionN(   t   settings(   t   call_command(   t   NoArgsCommand(   t   no_style(   t   custom_sql_for_modelt   emit_post_sync_signal(   t   connectionst   routert   transactiont   modelst   DEFAULT_DB_ALIAS(   t
   SortedDict(   t   import_modulet   Commandc           B   s‡   e  Z e j e d  d d d d d e d d ƒe d d d d d	 d e d d
 ƒe d d d d d d e d d ƒf Z d Z d „  Z RS(   s	   --noinputt   actiont   store_falset   destt   interactivet   defaultt   helps:   Tells Django to NOT prompt the user for input of any kind.s   --no-initial-datat   load_initial_datasI   Tells Django not to load any initial data after database synchronization.s
   --databaset   storet   databasesH   Nominates a database to synchronize. Defaults to the "default" database.sd   Create the database tables for all apps in INSTALLED_APPS whose tables haven't already been created.c      	      s8  t  | j d ƒ ƒ } | j d ƒ } | j d ƒ } | j d ƒ } t ƒ  |  _ xg t j D]\ } y t d | ƒ WqX t k
 r³ } | j d } | j	 d ƒ sª d | k r´ ‚  q´ qX XqX W| j d	 ƒ }	 t
 |	 ‰ ˆ j ƒ  }
 ˆ j j ƒ  ‰ ˆ j j ˆ ƒ } t ƒ  } i  } g  t j ƒ  D]V } | j j d
 ƒ d g  t j | d t ƒD] } t j |	 | ƒ rI| ^ qIf ^ q} ‡ ‡ f d †  ‰  t ‡  f d †  | Dƒ ƒ } | d k rÃ|  j j d ƒ n  xŠ| j ƒ  D]|\ } } xm| D]e} | d k r|  j j d | | j j f ƒ n  ˆ j j | |  j | ƒ \ } } | j  | ƒ | j  | ƒ xd | j ƒ  D]V \ } } | j! | g  ƒ j" | ƒ | | k r`| j" ˆ j j# | |  j | ƒ ƒ q`q`W| j" ˆ j j# | |  j | ƒ ƒ | d k r| r|  j j d | j j$ ƒ n  x | D] } |
 j% | ƒ qWˆ j& ˆ j j' | j j$ ƒ ƒ qãWqÐWt( j) d |	 ƒ t* | | | |	 ƒ ˆ j ƒ  }
 | d k rž|  j j d ƒ n  xD| j ƒ  D]6\ } } x'| D]} | | k r¾t+ | |  j ˆ ƒ } | r«| d k r|  j j d | | j j f ƒ n  y" x | D] } |
 j% | ƒ q$WWnY t, k
 r—} |  j- j d | | j j | f ƒ | r„t. j/ ƒ  n  t( j0 d |	 ƒ qÚXt( j) d |	 ƒ qÝ| d k rÝ|  j j d | | j j f ƒ qÝq¾q¾Wq«W| d k r|  j j d ƒ n  x| j ƒ  D]÷ \ } } xè | D]à } | | k r$ˆ j j1 | |  j ƒ } | r| d k rƒ|  j j d | | j j f ƒ n  y" x | D] } |
 j% | ƒ qWWnF t, k
 rí} |  j- j d | | j j | f ƒ t( j0 d |	 ƒ qXt( j) d |	 ƒ qq$q$WqW| r4t2 d d d | d	 |	 d t ƒn  d  S(    Nt	   verbosityR   t	   tracebackR   s   .managementi    s   No module namedt
   managementR   t   .iþÿÿÿt   include_auto_createdc            sM   |  j  } ˆ  j j } | | j ƒ ˆ k pK | j oK | | j j  j ƒ ˆ k S(   N(   t   _metat   introspectiont   table_name_convertert   db_tablet   auto_created(   t   modelt   optst	   converter(   t
   connectiont   tables(    s?   ../Django//lib/python/django/core/management/commands/syncdb.pyt   model_installedH   s    	c         3   s0   |  ]& \ } } | t  t ˆ  | ƒ ƒ f Vq d  S(   N(   t   listt   filter(   t   .0t   app_namet
   model_list(   R'   (    s?   ../Django//lib/python/django/core/management/commands/syncdb.pys	   <genexpr>O   s   i   s   Creating tables ...
i   s   Processing %s.%s model
s   Creating table %s
t   usings   Installing custom SQL ...
i   s&   Installing custom SQL for %s.%s model
s1   Failed to install custom SQL for %s.%s model: %s
s   No custom SQL for %s.%s model
s   Installing indexes ...
s!   Installing index for %s.%s model
s,   Failed to install index for %s.%s model: %s
t   loaddatat   initial_datat   skip_validation(3   t   intt   getR   t   styleR   t   INSTALLED_APPSR   t   ImportErrort   argst
   startswithR   t   cursorR   t   table_namest   installed_modelst   setR
   t   get_appst   __name__t   splitt
   get_modelst   TrueR   t   allow_syncdbR   t   stdoutt   writet   itemsR   t   object_namet   creationt   sql_create_modelt   addt
   setdefaultt   extendt   sql_for_pending_referencesR    t   executet   appendR   R	   t   commit_unless_managedR   R   t	   Exceptiont   stderrR   t	   print_exct   rollback_unless_managedt   sql_indexes_for_modelR   (   t   selft   optionsR   R   t   show_tracebackR   R+   t   exct   msgt   dbR8   t   seen_modelst   created_modelst   pending_referencest   appt   mt
   all_modelst   manifestR,   R"   t   sqlt
   referencest   reftot   refst	   statementt
   custom_sqlt   et	   index_sql(    (   R'   R&   R%   s?   ../Django//lib/python/django/core/management/commands/syncdb.pyt   handle_noargs   s°    

	f#!)"'#.#(	   R=   t
   __module__R   t   option_listR    R@   R   R   Ri   (    (    (    s?   ../Django//lib/python/django/core/management/commands/syncdb.pyR      s   (   t   optparseR    R   t   django.confR   t   django.core.managementR   t   django.core.management.baseR   t   django.core.management.colorR   t   django.core.management.sqlR   R   t	   django.dbR   R   R	   R
   R   t   django.utils.datastructuresR   t   django.utils.importlibR   R   (    (    (    s?   ../Django//lib/python/django/core/management/commands/syncdb.pyt   <module>   s   (