Я только что развернул свой самый первый проект django и пытаюсь использовать pgloader
v3.5 для переноса некоторых важных данных из sqlite3
в postgres
. Это успешно, ну, наполовину, успешно, поскольку данные, написанные на английском языке sh, переносятся, тогда как данные, написанные на русском языке (кириллицы c), не переносятся.
Пробовал:
Затем , Я попробовал обобщенный c способ - выгрузить файл datadump.json
db.sqlite3
и python manage.py loaddata datadump.json
, затем ошибка:
django .db.utils.DataError: Проблема с установкой Светильник '/home/user/project/datadump.json': не удалось загрузить boutique.Category (pk = 1): символ с байтовой последовательностью 0xd0 0x90 в кодировке «UTF8» не имеет эквивалента в кодировке «LATIN1»
datadump.json
Затем я проверил файл datadump.json
:
[{"model": "boutique.category", "pk": 1, "fields": {"gender": 1, "name": "\u0410\u043a\u0441\u0435\u0441\u0441\u0443\u0430\u0440\u044b", "description": "", "uploaded_date": "2020-03-02T08:20:49.786Z"}}, ...
проверил
Я проверил данные в db.sqlite3
нетронутыми, а данные (в основном, строки) на русском языке не передаются в новую базу данных postgres
.
system
Ubuntu 18, bioni c
django 3.0. 3
Вопрос:
Я думаю, что вопрос заключается в том, как загрузить / преобразовать не-Engli sh json данные? Не уверен, где начать решать проблему. Заранее спасибо!
Дополнительная информация:
Большое вам спасибо, ребята! Теперь я знаю, что кодировка неверна:
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+---------+-------+--------------------------
postgres | postgres | LATIN1 | en_US | en_US |
template0 | postgres | LATIN1 | en_US | en_US | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | LATIN1 | en_US | en_US | =c/postgres +
| | | | | postgres=CTc/postgres
va | postgres | LATIN1 | en_US | en_US | =Tc/postgres +
| | | | | postgres=CTc/postgres +
| | | | | va_db_admin=CTc/postgres
Значит ли это, что мне нужно пересоздать базу данных?