@new_username

Почему не работает loaddata (psycopg2.errors.NumericValueOutOfRange)?

Всем привет.

Занимают переводом своего проекта с SQLite на PostgreSQL. Проект уже запущен, поэтому необходимо перенести все данные из базы.
Изменил настройки settings.py, удалил все файлы миграций и контент-тайпы. Потом сделал дамп стандартной командой
python3 manage.py dumpdata > dump.json
и загружал через
python3 manage.py loaddata dump.json

В итоге получил ошибку
Traceback (most recent call last):                                                                                                                                                                                
  File "/home/user/project/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute                                                                                              
    return self.cursor.execute(sql, params)                                                                                                                                                                       
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                                                                                                                                                       
psycopg2.errors.NumericValueOutOfRange: ОШИБКА:  smallint вне диапазона

django.db.utils.DataError: Problem installing fixture '/home/user/project/new_dump.json': Could not load city.City(pk=179): ОШИБКА:  smallint вне диапазона


Я понимаю, что джанге не нравится то, что поле `pk` не подходящего формата. Но ведь это поле автоматически джангой генерируется. Могу ли я повлиять на его тип?
На просторах StackOverFlow нашёл ключи, которые вроде бы как отключают загрузку выгрузку первичных ключей, но с ними результат получился аналогичный.
python3 manage.py dumpdata --natural-primary --natural-foreign -e contenttypes -e auth.Permission > dump.json
  • Вопрос задан
  • 70 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы