Search code examples
pythondjangodjango-south

South's syncdb/migrate creates pages of output?


I'm working a small, personal Django project and I've added South (latest mercurial as of 10/9/10) to my project.

However, whenever I run "./manage.py syncdb" or "./manage.py migrate " I get about 13 pages (40 lines each) of output solely regarding 'initial_data' files not being found. I don't have any initial_data nor do I really want any, yet I get over 200 attempts at reading them for all the different apps in my project, including django's own apps.

Is there any way to quiet South? I haven't given South any input beyond adding it to my INSTALLED_APPS tuple and throwing an initial migration on, but I've gotten this annoying output since I installed it.


Solution

  • How is Your logging configured?

    I have turned much of the output by configuring logging to higher level, as in:

    [formatters]
    keys=simple
    
    [handlers]
    keys=console
    
    [loggers]
    keys=root,south
    
    [formatter_simple]
    format=%(asctime)s %(levelname)7s %(message)s
    datefmt=%Y-%m-%d %H:%M:%S
    
    [handler_console]
    class=StreamHandler
    args=[]
    formatter=simple
    
    [logger_root]
    level=INFO
    qualname=root
    handlers=console
    
    [logger_south]
    level=INFO
    qualname=south
    handlers=console
    

    Also beware that logging config has to be called AFTER south logging has been imported, because of some magic. From my project, in my settings:

    # south is setting logging on import-time; import it before setting our logger
    # so it is not overwriting our settings
    try:
        import south.logger
    except ImportError:
        pass
    
    import logging.config
    if LOGGING_CONFIG_FILE:
        logging.config.fileConfig(LOGGING_CONFIG_FILE)