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 28117 Add a helpful message to loaddata when psycopg2 raises ValueError due to NUL characters in data Nicolas Kuttler Srinivas Reddy Thatiparthy "I have a site that currently uses mysql. The `admin.logentry` table contains `object_repr` values from spam submissions like `\u589f0\u0005\u0001\u0000\u0000: Nice article` While migrating the site to postgres importing fixtures created with dumpdata raises a `ValueError` originating in (I think) https://github.com/psycopg/psycopg2/blob/2_7_1/psycopg/utils.c#L58 and not handled in https://github.com/django/django/blob/stable/1.11.x/django/core/management/commands/loaddata.py#L181 One possible fix, to give users a more informative error message, would be to catch ValueErrors as well on that line. {{{ Traceback (most recent call last): File ""./src/manage.py"", line 8, in execute_from_command_line(sys.argv) File ""/srv/www/project/staging/20170422-113847/virtualenv/local/lib/python2.7/site-packages/django/core/management/__init__.py"", line 367, in execute_from_command_line utility.execute() File ""/srv/www/project/staging/20170422-113847/virtualenv/local/lib/python2.7/site-packages/django/core/management/__init__.py"", line 359, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File ""/srv/www/project/staging/20170422-113847/virtualenv/local/lib/python2.7/site-packages/django/core/management/base.py"", line 294, in run_from_argv self.execute(*args, **cmd_options) File ""/srv/www/project/staging/20170422-113847/virtualenv/local/lib/python2.7/site-packages/django/core/management/base.py"", line 345, in execute output = self.handle(*args, **options) File ""/srv/www/project/staging/20170422-113847/virtualenv/local/lib/python2.7/site-packages/django/core/management/commands/loaddata.py"", line 64, in handle self.loaddata(fixture_labels) File ""/srv/www/project/staging/20170422-113847/virtualenv/local/lib/python2.7/site-packages/django/core/management/commands/loaddata.py"", line 104, in loaddata self.load_label(fixture_label) File ""/srv/www/project/staging/20170422-113847/virtualenv/local/lib/python2.7/site-packages/django/core/management/commands/loaddata.py"", line 167, in load_label obj.save(using=self.using) File ""/srv/www/project/staging/20170422-113847/virtualenv/local/lib/python2.7/site-packages/django/core/serializers/base.py"", line 201, in save models.Model.save_base(self.object, using=using, raw=True, **kwargs) File ""/srv/www/project/staging/20170422-113847/virtualenv/local/lib/python2.7/site-packages/django/db/models/base.py"", line 824, in save_base updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields) File ""/srv/www/project/staging/20170422-113847/virtualenv/local/lib/python2.7/site-packages/django/db/models/base.py"", line 889, in _save_table forced_update) File ""/srv/www/project/staging/20170422-113847/virtualenv/local/lib/python2.7/site-packages/django/db/models/base.py"", line 939, in _do_update return filtered._update(values) > 0 File ""/srv/www/project/staging/20170422-113847/virtualenv/local/lib/python2.7/site-packages/django/db/models/query.py"", line 654, in _update return query.get_compiler(self.db).execute_sql(CURSOR) File ""/srv/www/project/staging/20170422-113847/virtualenv/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py"", line 1148, in execute_sql cursor = super(SQLUpdateCompiler, self).execute_sql(result_type) File ""/srv/www/project/staging/20170422-113847/virtualenv/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py"", line 835, in execute_sql cursor.execute(sql, params) File ""/srv/www/project/staging/20170422-113847/virtualenv/local/lib/python2.7/site-packages/django/db/backends/utils.py"", line 64, in execute return self.cursor.execute(sql, params) ValueError: Problem installing fixture '/srv/www/project/data.json': A string literal cannot contain NUL (0x00) characters. }}}" Cleanup/optimization closed Core (Management commands) 1.11 Normal fixed Ready for checkin 1 0 0 0 0 0