Всем привет.
Занимают переводом своего проекта с 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