Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#22882 closed Bug (fixed)

UnicodeDecodeError in command flush

Reported by: Grigoriy Kramarenko Owned by: Flavio Curella
Component: Core (Management commands) Version: dev
Severity: Normal Keywords: flush
Cc: Triage Stage: Accepted
Has patch: yes Needs documentation: no
Needs tests: yes Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

I use PostgreSQL in my projects. OS: GNU/Debian 7/8 on production, and Linux Mint 17 on development.
DBMS returns messages as Russian text.

djbaldey@p633m project $ ../manage.py flush
You have requested a flush of the database.
This will IRREVERSIBLY DESTROY all data currently in the u'plx_dev' database,
and return each table to the state it was in after syncdb.
Are you sure you want to do this?

    Type 'yes' to continue, or 'no' to cancel: yes
Traceback (most recent call last):
  File "../manage.py", line 60, in <module>
    execute_from_command_line(sys.argv)
  File "/home/djbaldey/env-django1.6/lib/python2.7/site-packages/django/core/management/__init__.py", line 399, in execute_from_command_line
    utility.execute()
  File "/home/djbaldey/env-django1.6/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/djbaldey/env-django1.6/lib/python2.7/site-packages/django/core/management/base.py", line 242, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/home/djbaldey/env-django1.6/lib/python2.7/site-packages/django/core/management/base.py", line 285, in execute
    output = self.handle(*args, **options)
  File "/home/djbaldey/env-django1.6/lib/python2.7/site-packages/django/core/management/base.py", line 415, in handle
    return self.handle_noargs(**options)
  File "/home/djbaldey/env-django1.6/lib/python2.7/site-packages/django/core/management/commands/flush.py", line 77, in handle_noargs
    "The full error: %s") % (connection.settings_dict['NAME'], e)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)

Patch in django/core/management/commands/flush.py:

from django.utils.encoding import smart_text
...

"The full error: %s") % (connection.settings_dict['NAME'], smart_text(e))
...

Change History (7)

comment:1 by Claude Paroz, 10 years ago

Triage Stage: UnreviewedAccepted

#20572 is related.

comment:2 by Grigoriy Kramarenko, 10 years ago

UPD: in command dumpdata

djbaldey@p633m project $ ../manage.py dumpdata users
[Traceback (most recent call last):
  File "../manage.py", line 60, in <module>
    execute_from_command_line(sys.argv)
  File "/home/djbaldey/env-django1.6/lib/python2.7/site-packages/django/core/management/__init__.py", line 399, in execute_from_command_line
    utility.execute()
  File "/home/djbaldey/env-django1.6/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/djbaldey/env-django1.6/lib/python2.7/site-packages/django/core/management/base.py", line 249, in run_from_argv
    stderr.write('%s: %s' % (e.__class__.__name__, force_str(e)))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 30: ordinal not in range(128)

Patch in django/core/management/commands/base.py:

from django.utils.encoding import force_str, smart_text
...

stderr.write('%s: %s' % (e.__class__.__name__, smart_text(e)))
...

After:

djbaldey@p633m project $ ../manage.py dumpdata users
CommandError: Unable to serialize database: ОШИБКА:  отношение "users_permission" не существует
LINE 1: ...."built_type", "users_permission"."codename" FROM "users_per...
                                                             ^

comment:3 by Aymeric Augustin, 10 years ago

Component: UncategorizedCore (Management commands)

comment:4 by Flavio Curella, 10 years ago

Owner: changed from nobody to Flavio Curella
Status: newassigned

comment:5 by Flavio Curella, 10 years ago

Has patch: set
Needs tests: set
Version: 1.6master

I've taken the liberty to create a PR implementing the fixes mentioned in the description

https://github.com/django/django/pull/3172

comment:6 by Tim Graham <timograham@…>, 10 years ago

Resolution: fixed
Status: assignedclosed

In 0e4d79c4f0591da3d2b0cf030cb8a79abe482345:

Fixed #22882 -- Fixed a UnicodeDecodeError in flush.

Thanks djbaldey for the report.

comment:7 by Tim Graham <timograham@…>, 10 years ago

In a932c596fc5bfcfcb358981540917c8d6f9dc575:

[1.7.x] Fixed #22882 -- Fixed a UnicodeDecodeError in flush.

Thanks djbaldey for the report.

Backport of 0e4d79c4f0 from master

Note: See TracTickets for help on using tickets.
Back to Top