﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
2866	[patch] Allowing DatabaseWrapper to support extra kwargs as settings.DATABASE_OPTIONS	ymasuda <ymasuda@…>	Adrian Holovaty	"It would be nice to support extra keyword arguments on backends.*.DatabaseWrapper to tweak backend-specific behaviour of connect().

For example, MySQLdb supports charset keyword argument that can be used to set-default-character-set as utf8.
Allowing extra keyword arguments works as follows:

 1. specify {'charset': 'utf8'} on settings.DATABASE_OPTIONS (which defaults to empty dictionary)
 2. settings.DATABASE_OPTIONS is passed to DatabaseWrapper as keyword arguments: ({{{connection = backend.DatabaseWrapper(**settings.DATABASE_OPTIONS)}}})
 3. DatabaseWrapper.__init__() saves kwargs as self.options
 4. on DatabaseWrapper.cursor(), which build connection as needed, passes self.options as extra keyword argument: {{{ self.connection = Database.connect(**kwargs) }}}

Attached diff includes changes on django.conf.global_settings, django.db.__init__, and django.db.backends.*.base.
Please note that currently kwargs are just ignored on ado_mssql (that backend does not support extra kwargs)."	enhancement	closed	Database layer (models, ORM)		normal	fixed			Unreviewed	1	0	0	0	0	0
