python - 在Django中将数据库从sqlite更改为postgreSQL时出错
问题描述
我一直在尝试参考此页面将数据从 sqlite 转储和加载到 PostgreSQL 。
但是,当我尝试加载由以下代码转储的数据时出现以下错误。
python manage.py dumpdata --natural-foreign --natural-primary -e contenttypes -e auth.Permission > database.json
我试图转储数据删除自然参数如下。但是得到了同样的错误。
python manage.py dumpdata -e contenttypes -e auth.Permission > database.json
谁能告诉我应该怎么做才能解决这个问题?
(webEP) C:\Users\obakatsu\Documents\Python_scripts\Django\DjangoEP>python manage.py loaddata database.json
Traceback (most recent call last):
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\db\backends\utils.py", line 65, in execute
return self.cursor.execute(sql, params)
psycopg2.ProgrammingError: リレーション"auth_user"は存在しません
LINE 1: ...user"."is_active", "auth_user"."date_joined" FROM "auth_user...
^
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\core\serializers\json.py", line 81, in Deserializer
for obj in PythonDeserializer(objects, **options):
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\core\serializers\python.py", line 183, in Deserializer
obj = base.build_instance(Model, data, db)
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\core\serializers\base.py", line 227, in build_instance
obj.pk = Model._default_manager.db_manager(db).get_by_natural_key(*natural_key).pk
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\contrib\auth\base_user.py", line 48, in get_by_natural_key
return self.get(**{self.model.USERNAME_FIELD: username})
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\db\models\query.py", line 373, in get
num = len(clone)
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\db\models\query.py", line 232, in __len__
self._fetch_all()
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\db\models\query.py", line 1102, in _fetch_all
self._result_cache = list(self._iterable_class(self))
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\db\models\query.py", line 53, in __iter__
results = compiler.execute_sql(chunked_fetch=self.chunked_fetch)
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\db\models\sql\compiler.py", line 876, in execute_sql
cursor.execute(sql, params)
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\db\backends\utils.py", line 80, in execute
return super(CursorDebugWrapper, self).execute(sql, params)
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\db\backends\utils.py", line 65, in execute
return self.cursor.execute(sql, params)
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\db\utils.py", line 94, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\utils\six.py", line 685, in reraise
raise value.with_traceback(tb)
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\db\backends\utils.py", line 65, in execute
return self.cursor.execute(sql, params)
django.db.utils.ProgrammingError: リレーション"auth_user"は存在しません
LINE 1: ...user"."is_active", "auth_user"."date_joined" FROM "auth_user...
^
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "manage.py", line 22, in <module>
execute_from_command_line(sys.argv)
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\core\management\__init__.py", line 363, in execute_from_command_line
utility.execute()
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\core\management\__init__.py", line 355, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\core\management\base.py", line 283, in run_from_argv
self.execute(*args, **cmd_options)
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\core\management\base.py", line 330, in execute
output = self.handle(*args, **options)
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\core\management\commands\loaddata.py", line 69, in handle
self.loaddata(fixture_labels)
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\core\management\commands\loaddata.py", line 109, in loaddata
self.load_label(fixture_label)
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\core\management\commands\loaddata.py", line 166, in load_label
for obj in objects:
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\core\serializers\json.py", line 87, in Deserializer
six.reraise(DeserializationError, DeserializationError(e), sys.exc_info()[2])
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\utils\six.py", line 685, in reraise
raise value.with_traceback(tb)
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\core\serializers\json.py", line 81, in Deserializer
for obj in PythonDeserializer(objects, **options):
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\core\serializers\python.py", line 183, in Deserializer
obj = base.build_instance(Model, data, db)
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\core\serializers\base.py", line 227, in build_instance
obj.pk = Model._default_manager.db_manager(db).get_by_natural_key(*natural_key).pk
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\contrib\auth\base_user.py", line 48, in get_by_natural_key
return self.get(**{self.model.USERNAME_FIELD: username})
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\db\models\query.py", line 373, in get
num = len(clone)
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\db\models\query.py", line 232, in __len__
self._fetch_all()
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\db\models\query.py", line 1102, in _fetch_all
self._result_cache = list(self._iterable_class(self))
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\db\models\query.py", line 53, in __iter__
results = compiler.execute_sql(chunked_fetch=self.chunked_fetch)
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\db\models\sql\compiler.py", line 876, in execute_sql
cursor.execute(sql, params)
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\db\backends\utils.py", line 80, in execute
return super(CursorDebugWrapper, self).execute(sql, params)
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\db\backends\utils.py", line 65, in execute
return self.cursor.execute(sql, params)
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\db\utils.py", line 94, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\utils\six.py", line 685, in reraise
raise value.with_traceback(tb)
File "C:\Users\obakatsu\Anaconda3\envs\webEP\lib\site-packages\django\db\backends\utils.py", line 65, in execute
return self.cursor.execute(sql, params)
django.core.serializers.base.DeserializationError: Problem installing fixture 'C:\Users\obakatsu\Documents\Python_scripts\Django\DjangoEP\database.json': リレーション"auth_user"は存在しません
LINE 1: ...user"."is_active", "auth_user"."date_joined" FROM "auth_user...
解决方案
这同样发生在我身上,首先在 .json 文件中备份您的数据库,然后将 settings.py 更改为您想要的数据库,然后运行命令
python manage.py migrate
这逐渐对我有用!所以尝试一次。
推荐阅读
- c# - 是什么导致 EF Core 检索数据的速度比实际 SQL 查询和建议速度要慢得多?
- javascript - 如何通过 Meteor 中的订阅在没有 MongoDB 的情况下发布数据?
- google-apps-script - 谷歌表格应用程序脚本问题与创建合并单元格的新行
- android-studio - 将 onSaveInstance 用于位图的 Android Studio 无法正常工作
- blazor-webassembly - Blazor WASM 在组件之间传递值
- python - 预测失败:检查输入时出错:预期dense_input 具有形状(2898,)但得到的数组具有形状(1,)
- powershell - PowerShell $_ 语法
- r - 如何让 R 识别来自目录中另一个依赖项的函数?
- hybris - 如何将我的自定义 productcockpit 扩展添加为 hybris 后台透视列表主插槽中的选项之一
- mongodb - 在 MongoDB 中检索嵌套数组中的数据并分页聚合显示所有文档