diff --git a/AUTHORS b/AUTHORS index 96d02cd21d1..e49bb392aa6 100644 --- a/AUTHORS +++ b/AUTHORS @@ -97,6 +97,7 @@ answer newbie questions, and generally made Django that much better: colin@owlfish.com crankycoder@gmail.com Paul Collier + Robert Coup Pete Crosier Matt Croydon Leah Culver diff --git a/django/db/backends/postgresql_psycopg2/base.py b/django/db/backends/postgresql_psycopg2/base.py index 16104277c59..27de942207e 100644 --- a/django/db/backends/postgresql_psycopg2/base.py +++ b/django/db/backends/postgresql_psycopg2/base.py @@ -72,16 +72,19 @@ class DatabaseWrapper(BaseDatabaseWrapper): if settings.DATABASE_NAME == '': from django.core.exceptions import ImproperlyConfigured raise ImproperlyConfigured("You need to specify DATABASE_NAME in your Django settings file.") - conn_string = "dbname=%s" % settings.DATABASE_NAME + conn_params = { + 'database': settings.DATABASE_NAME, + } + conn_params.update(self.options) if settings.DATABASE_USER: - conn_string = "user=%s %s" % (settings.DATABASE_USER, conn_string) + conn_params['user'] = settings.DATABASE_USER if settings.DATABASE_PASSWORD: - conn_string += " password='%s'" % settings.DATABASE_PASSWORD + conn_params['password'] = settings.DATABASE_PASSWORD if settings.DATABASE_HOST: - conn_string += " host=%s" % settings.DATABASE_HOST + conn_params['host'] = settings.DATABASE_HOST if settings.DATABASE_PORT: - conn_string += " port=%s" % settings.DATABASE_PORT - self.connection = Database.connect(conn_string, **self.options) + conn_params['port'] = settings.DATABASE_PORT + self.connection = Database.connect(**conn_params) self.connection.set_isolation_level(1) # make transactions transparent to all cursors self.connection.set_client_encoding('UTF8') cursor = self.connection.cursor()