Thursday, December 27, 2012

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



On Thursday, December 27, 2012 8:51:11 AM UTC-8, Dan Richards wrote:
Yeah, psycopg2 is definitely installed...

On Thursday, December 27, 2012 9:03:31 AM UTC-5, ke1g wrote:


On Thu, Dec 27, 2012 at 8:26 AM, Dan Richards <roda...@gmail.com> wrote:
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...

On Wednesday, December 26, 2012 4:25:11 PM UTC-5, Ryan Blunden wrote:
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. 


On 26 December 2012 13:18, Dan Richards <roda...@gmail.com> wrote:
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...


On Wednesday, December 26, 2012 12:40:28 PM UTC-5, Dan Richards 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.


I would expect a different error, but are you certain that psycopg2 is 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?

--
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/-/tJZ92XOp2E8J.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

No comments:

Post a Comment