diff options
| author | manav014 <dpsman13016@gmail.com> | 2020-10-14 23:37:57 +0530 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2020-10-17 12:24:36 +0200 |
| commit | af87574a3c3df61cf2f829909977e347118e6480 (patch) | |
| tree | 3d2092a587ce62610f8780c629dab34572f3876e | |
| parent | 98126cdfaf632abc8f0b5e65910e46a4eedc4641 (diff) | |
Fixed #6517 -- Made dbshell use charset option on MySQL.
Co-Authored-By: Mariusz Felisiak <felisiak.mariusz@gmail.com>
| -rw-r--r-- | django/db/backends/mysql/client.py | 3 | ||||
| -rw-r--r-- | tests/dbshell/test_mysql.py | 17 |
2 files changed, 20 insertions, 0 deletions
diff --git a/django/db/backends/mysql/client.py b/django/db/backends/mysql/client.py index 904c450cef..a94d388ccd 100644 --- a/django/db/backends/mysql/client.py +++ b/django/db/backends/mysql/client.py @@ -21,6 +21,7 @@ class DatabaseClient(BaseDatabaseClient): client_cert = settings_dict['OPTIONS'].get('ssl', {}).get('cert') client_key = settings_dict['OPTIONS'].get('ssl', {}).get('key') defaults_file = settings_dict['OPTIONS'].get('read_default_file') + charset = settings_dict['OPTIONS'].get('charset') # Seems to be no good way to set sql_mode with CLI. if defaults_file: @@ -42,6 +43,8 @@ class DatabaseClient(BaseDatabaseClient): args += ["--ssl-cert=%s" % client_cert] if client_key: args += ["--ssl-key=%s" % client_key] + if charset: + args += ['--default-character-set=%s' % charset] if db: args += [db] args.extend(parameters) diff --git a/tests/dbshell/test_mysql.py b/tests/dbshell/test_mysql.py index 95faa21647..e09644962b 100644 --- a/tests/dbshell/test_mysql.py +++ b/tests/dbshell/test_mysql.py @@ -59,6 +59,23 @@ class MySqlDbshellCommandTestCase(SimpleTestCase): }), ) + def test_options_charset(self): + self.assertEqual( + [ + 'mysql', '--user=someuser', '--password=somepassword', + '--host=somehost', '--port=444', + '--default-character-set=utf8', 'somedbname', + ], + self.get_command_line_arguments({ + 'NAME': 'somedbname', + 'USER': 'someuser', + 'PASSWORD': 'somepassword', + 'HOST': 'somehost', + 'PORT': 444, + 'OPTIONS': {'charset': 'utf8'}, + }), + ) + def test_can_connect_using_sockets(self): self.assertEqual( ['mysql', '--user=someuser', '--password=somepassword', |
