Задать вопрос
  • Как исправить кодировку при дампе базы данных из django?

    @xbox
    Тоже столкнулся с проблемой неправильной кодировки при экспорте и советы из интернета типа указания "-Xutf8" не помогали.

    Когда мы указываем в команде "> db.json", то все данные сначала направляются на устройство стандартного вывода, а оттуда перенаправляются в файл. В зависимости от операционных систем, программного обеспечения итп кодировка в файле получается не всегда нужная.

    В моем случае я работаю из-под Windows, Django запущен в контейнере Docker (в контейнере Linux), dumpdata пытался делать через консоль в PyCharm. В БД данные в Unicode. В консоль при выводе dumpdata кириллица читается нормально, но при перенаправлении ">" вывода dumpdata в файл, кодировка неправильная.

    Решил эту проблему так. Вместо того, чтобы данные захватывать через устройство стандартного вывода, их можно сохранять напрямую в файл. Для этого используем опцию "-o db.json". При таком использовании данные сохраняются сразу в правильной кодировке (utf-8)

    Полная команда получится такая:
    python manage.py dumpdata --indent=2 --exclude auth.permission --exclude contenttypes -o db.json
    Ответ написан
    Комментировать