[1.0.X] Fixed -- Made DATABASE_OPTIONS work with postgresql_psycopg2 backend.

Thanks to rcoup for the patch.

Backport of r9981 from trunk.

git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.0.X@9982 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Malcolm Tredinnick 2009-03-06 02:38:38 +00:00
parent 31e059c9b3
commit dd5300274f
2 changed files with 10 additions and 6 deletions
AUTHORS
django/db/backends/postgresql_psycopg2

View File

@ -93,6 +93,7 @@ answer newbie questions, and generally made Django that much better:
colin@owlfish.com
crankycoder@gmail.com
Paul Collier <paul@paul-collier.com>
Robert Coup
Pete Crosier <pete.crosier@gmail.com>
Matt Croydon <http://www.postneo.com/>
Leah Culver <leah@pownce.com>

View File

@ -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()