В настоящее время я использую sqlite3 в качестве базы данных для одного из моих проектов Django. Я хочу изменить это, чтобы использовать postgresql, и я хотел бы сохранить все данные в целости.
Я использовал ./manage.py dumpdata > dump.json
, чтобы создать дамп данных, и изменил мои настройки на использование postgresql. Сначала попытка выполнить пустую базу данных ./manage.py loaddata dump.json
привела к ошибкам из-за несуществующих таблиц, поэтому я запустил ./manage.py syncdb
и повторил попытку. Это приводит к этой ошибке:
Problem installing fixture 'dump.json': Traceback (most recent call last):
File "/usr/lib/python2.6/site-packages/django/core/management/commands/loaddata.py", line 163, in handle
obj.save()
File "/usr/lib/python2.6/site-packages/django/core/serializers/base.py", line 163, in save
models.Model.save_base(self.object, raw=True)
File "/usr/lib/python2.6/site-packages/django/db/models/base.py", line 495, in save_base
rows = manager.filter(pk=pk_val)._update(values)
File "/usr/lib/python2.6/site-packages/django/db/models/query.py", line 448, in _update
return query.execute_sql(None)
File "/usr/lib/python2.6/site-packages/django/db/models/sql/subqueries.py", line 124, in execute_sql
cursor = super(UpdateQuery, self).execute_sql(result_type)
File "/usr/lib/python2.6/site-packages/django/db/models/sql/query.py", line 2347, in execute_sql
cursor.execute(sql, params)
File "/usr/lib/python2.6/site-packages/django/db/backends/util.py", line 19, in execute
return self.cursor.execute(sql, params)
IntegrityError: duplicate key value violates unique constraint "django_content_type_app_label_key"
- Разве это не правильный способ перемещения данных из одной базы данных в другую?
- Что мне делать, чтобы безопасно переключать бэкэнд БД?