Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django error when installing Graphite - settings.DATABASES is improperly configured. Please supply the ENGINE value

I am trying to install GRAPHITE on ubuntu. I follow the instructions in the blog.

http://geek.michaelgrace.org/2011/09/how-to-install-graphite-on-ubuntu/

When I get to the part where I run the command..I get the below error. I have zero clue on how to resolve. I am using the lastest version of Django 1.4.

cd /opt/graphite/webapp/graphite/
sudo python manage.py syncdb


sudo python manage.py syncdb
/opt/graphite/webapp/graphite/thirdparty/pytz/__init__.py:32: UserWarning: Module pytz was already imported from /opt/graphite/webapp/graphite/thirdparty/pytz/__init__.pyc, but /usr/local/lib/python2.7/dist-packages/pytz-2012b-py2.7.egg is being added to sys.path
  from pkg_resources import resource_stream
Traceback (most recent call last):
  File "manage.py", line 11, in <module>
    execute_manager(settings)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 459, in execute_manager
    utility.execute()
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 382, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 196, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 232, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 371, in handle
    return self.handle_noargs(**options)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/syncdb.py", line 57, in handle_noargs
    cursor = connection.cursor()
  File "/usr/local/lib/python2.7/dist-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.

In the /opt/graphite/webapp/graphite/settings.py file, this is the contents.

#Database settings, sqlite is intended for single-server setups
DATABASE_ENGINE = 'sqlite3'                     # 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'.
DATABASE_NAME = STORAGE_DIR + 'graphite.db'     # Or path to database file if using sqlite3.
DATABASE_USER = ''                              # Not used with sqlite3.
DATABASE_PASSWORD = ''                          # Not used with sqlite3.
DATABASE_HOST = ''                              # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = ''                              # Set to empty string for default. Not used with sqlite3.

DASHBOARD_CONF = join(CONF_DIR, 'dashboard.conf')
GRAPHTEMPLATES_CONF = join(CONF_DIR, 'graphTemplates.conf')
like image 348
Tampa Avatar asked Mar 24 '12 09:03

Tampa


3 Answers

graphite version 0.9.10 supports Django 1.4... however they put the sqlite settings in django's local_settings.py

[mpenning@tsunami graphite]$ cat local_settings.py|grep -v \#
DATABASES = {
    'default': {
        'NAME': '/opt/graphite/storage/graphite.db',
        'ENGINE': 'django.db.backends.sqlite3',
        'USER': '',
        'PASSWORD': '',
        'HOST': '',
        'PORT': ''
    }
}
[mpenning@tsunami graphite]$
[mpenning@tsunami graphite]$ pwd
/opt/graphite/webapp/graphite
[mpenning@tsunami graphite]$
like image 52
Mike Pennington Avatar answered Oct 16 '22 10:10

Mike Pennington


You need to edit settings.py and set the contents of the DATABASES variable to something other than empty strings. There are comments next to it that tell you which database engines are supported:

DATABASES = {
   'default': {
        'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': '',                      # 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.
    }
}

If you have nothing else installed, you could append sqlite3 to the ENGINE string which is easy for development on your local machine.

like image 25
Simeon Visser Avatar answered Oct 16 '22 11:10

Simeon Visser


For users landing here with the error message "The SECRET_KEY setting must not be empty", make sure to set the secret key in /opt/graphite/webapp/graphite/app_settings.py as well as in your django config.

like image 9
Girish Nair Avatar answered Oct 16 '22 10:10

Girish Nair