Re: debugging issues with settings.py and database (postgres) and syncdb

165 views
Skip to first unread message

Ryan Blunden

unread,
Dec 26, 2012, 3:18:59 PM12/26/12
to django...@googlegroups.com
Are the user and password fields meant  to be blank?

Cheers,
Ryan

On Dec 26, 2012, at 9:40 AM, Dan Richards <roda...@gmail.com> wrote:

First off, I am a newbie to django, python and postgres - so I suspect I am missing something obvious, but I am stumped.  Any ideas will be gratefully accepted...

I get the popular "Improperly configured settings.DATABASES" error message when I run syncdb on my test app.  I am running:

django 1.4.3
postgres 9.2
MAC OS 10.6.8

I have verified that it is picking up the right settings.py file (the one in the app subdirectory) so I assume there is either something wrong with the settings I have entered or something wrong with postgres.  How does one debug this??

I can connect to my database via psql, but nothing I have tried seems to work and there seems to be very little I can do to actually debug what the problem is...when the syncdb doesn't work, how do you debug to figure out what exactly isn't working???

My settings.py file:

# Django settings for hellodjango project.

DEBUG = True
TEMPLATE_DEBUG = DEBUG

ADMINS = (
    ('Joe Smith', 'jsm...@foobar.com'),
)

MANAGERS = ADMINS

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'test_db1',                      # Or path to database file if using sqlite3.
        'USER': '',                      # Not used with sqlite3.
        'PASSWORD': '',                  # Not used with sqlite3.
        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
    }
}

# Local time zone for this installation. Choices can be found here:
# although not all choices may be available on all operating systems.
# In a Windows environment this must be set to your system time zone.
TIME_ZONE = 'America/New_York'

# Language code for this installation. All choices can be found here:
LANGUAGE_CODE = 'en-us'

SITE_ID = 1

# If you set this to False, Django will make some optimizations so as not
# to load the internationalization machinery.
USE_I18N = True

# If you set this to False, Django will not format dates, numbers and
# calendars according to the current locale.
USE_L10N = True

# If you set this to False, Django will not use timezone-aware datetimes.
USE_TZ = True

# Absolute filesystem path to the directory that will hold user-uploaded files.
# Example: "/home/media/media.lawrence.com/media/"
MEDIA_ROOT = ''

# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash.
MEDIA_URL = ''

# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/home/media/media.lawrence.com/static/"
STATIC_ROOT = ''

# URL prefix for static files.
STATIC_URL = '/static/'

# Additional locations of static files
STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
)

# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
#    'django.contrib.staticfiles.finders.DefaultStorageFinder',
)

# Make this unique, and don't share it with anybody.
SECRET_KEY = '3*a*mgk*)dcdyzi8v4#2%z^mt^63-uqq5g)q63)xy37ogcqxux'

# List of callables that know how to import templates from various sources.
TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
#     'django.template.loaders.eggs.Loader',
)

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    # Uncomment the next line for simple clickjacking protection:
    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

ROOT_URLCONF = 'hellodjango.urls'

# Python dotted path to the WSGI application used by Django's runserver.
WSGI_APPLICATION = 'hellodjango.wsgi.application'

TEMPLATE_DIRS = (
    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
)

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'kombu.transport.django',
    'djcelery',
    # Uncomment the next line to enable the admin:
    # 'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
)

# A sample logging configuration. The only tangible logging
# performed by this configuration is to send an email to
# the site admins on every HTTP 500 error when DEBUG=False.
# more details on how to customize your logging configuration.
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse'
        }
    },
    'handlers': {
        'mail_admins': {
            'level': 'ERROR',
            'filters': ['require_debug_false'],
            'class': 'django.utils.log.AdminEmailHandler'
        }
    },
    'loggers': {
        'django.request': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': True,
        },
    }
}
# Parse database configuration from $DATABASE_URL
import dj_database_url
DATABASES['default'] =  dj_database_url.config()

BROKER_BACKEND = 'django'

import djcelery
djcelery.setup_loader()



And here is the traceback:

(venv)mac-rodan:hellodjango rodan$ python manage.py syncdb --verbosity 2
here we are
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/rodan/testdev/hellodjango/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line
    utility.execute()
  File "/Users/rodan/testdev/hellodjango/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Users/rodan/testdev/hellodjango/venv/lib/python2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/Users/rodan/testdev/hellodjango/venv/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute
    output = self.handle(*args, **options)
  File "/Users/rodan/testdev/hellodjango/venv/lib/python2.7/site-packages/django/core/management/base.py", line 371, in handle
    return self.handle_noargs(**options)
  File "/Users/rodan/testdev/hellodjango/venv/lib/python2.7/site-packages/django/core/management/commands/syncdb.py", line 58, in handle_noargs
    cursor = connection.cursor()
  File "/Users/rodan/testdev/hellodjango/venv/lib/python2.7/site-packages/django/db/backends/dummy/base.py", line 15, in complain
    raise ImproperlyConfigured("settings.DATABASES is improperly configured. "
django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.


--
You received this message because you are subscribed to the Google Groups "Django users" group.
To view this discussion on the web visit https://groups.google.com/d/msg/django-users/-/El7S-R5cZuIJ.
To post to this group, send email to django...@googlegroups.com.
To unsubscribe from this group, send email to django-users...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

Dan Richards

unread,
Dec 26, 2012, 4:18:21 PM12/26/12
to django...@googlegroups.com
NO, just me messing around that it made no difference.  I have the db access to all and trust and the error doesn't change no matter what I use there.  It feels like it could be a permissions problem, but I don't know how to track it down other than to verify I can access postgres via psql which I can do...

Ryan Blunden

unread,
Dec 26, 2012, 4:25:11 PM12/26/12
to django...@googlegroups.com
Ok. I would try setting the ENGINE value to sqlite3 and try running syncdb again. If that works (which it should), then we can presume it's a configuration access problem with the DB. 


--
You received this message because you are subscribed to the Google Groups "Django users" group.
To view this discussion on the web visit https://groups.google.com/d/msg/django-users/-/5VaDM8qYd58J.

To post to this group, send email to django...@googlegroups.com.
To unsubscribe from this group, send email to django-users...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

Dan Richards

unread,
Dec 27, 2012, 8:26:27 AM12/27/12
to django...@googlegroups.com
Hmmm...well that isn't working either - same error.  My method for verifying it's picking up the right settings.py is by putting a syntax error in the settings.py it should be using and seeing that it generates an error.  This is the settings.py file in the directory below my app directory and that includes url.py and wsgi.py...

Bill Freeman

unread,
Dec 27, 2012, 9:03:31 AM12/27/12
to django...@googlegroups.com
I would expect a different error, but are you certain that psycopg2 is installed?

Dan Richards

unread,
Dec 27, 2012, 11:51:11 AM12/27/12
to django...@googlegroups.com
Yeah, psycopg2 is definitely installed...

Bill Freeman

unread,
Dec 27, 2012, 12:41:42 PM12/27/12
to django...@googlegroups.com
On Thu, Dec 27, 2012 at 11:51 AM, Dan Richards <roda...@gmail.com> wrote:
Yeah, psycopg2 is definitely installed...

It sounds like it may be time to insert:

    import pdb;pdb.set_trace()

at the point where the exception gets raised.  Looking at variables that it doesn't like, and looking up the stack frame for where they came from can often dispel the mists.

Bill
Message has been deleted

donarb

unread,
Dec 27, 2012, 12:52:57 PM12/27/12
to django...@googlegroups.com
On Thursday, December 27, 2012 8:51:11 AM UTC-8, Dan Richards wrote:
Yeah, psycopg2 is definitely installed...

I noticed that you are using djcelery (which I know nothing about), but have you tried getting everything working without it first? There's a line in your settings that says

DATABASES['default'] = dj_database_url.config()

Could this be trashing the database setting somehow?
 

Dan Richards

unread,
Dec 27, 2012, 1:36:33 PM12/27/12
to django...@googlegroups.com
Yes indeed! That was it.  I am following a tutorial for getting things running on a Heroku platform and that seems to be something special for that environment.  Thank you!!
Reply all
Reply to author
Forward
0 new messages