在将数据从sqlite3迁移到PostgreSQL时无效的模型标识符



我正在尝试将我的Wagtail应用程序从sqlite3迁移到PostgreSQL,但我得到一个错误说

无效的模型标识符:'wagtailsearch.sqliteftsindexentry'

这是当我输入命令:

python manage.py loaddata data.json

我得到这个错误:

Traceback (most recent call last):
File "C:UsersDELLDesktopMdrift_Wagtailvenvlibsite-packagesdjangoappsconfig.py", line 235, in get_model
return self.models[model_name.lower()]
KeyError: 'sqliteftsindexentry'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:UsersDELLDesktopMdrift_Wagtailvenvlibsite-packagesdjangocoreserializerspython.py", line 181, in _get_model 
return apps.get_model(model_identifier)
File "C:UsersDELLDesktopMdrift_Wagtailvenvlibsite-packagesdjangoappsregistry.py", line 213, in get_model
return app_config.get_model(model_name, require_ready=require_ready)
File "C:UsersDELLDesktopMdrift_Wagtailvenvlibsite-packagesdjangoappsconfig.py", line 237, in get_model
raise LookupError(
LookupError: App 'wagtailsearch' doesn't have a 'sqliteftsindexentry' model.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:UsersDELLDesktopMdrift_Wagtailmdriftmanage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "C:UsersDELLDesktopMdrift_Wagtailvenvlibsite-packagesdjangocoremanagement__init__.py", line 446, in execute_from_command_line
utility.execute()
File "C:UsersDELLDesktopMdrift_Wagtailvenvlibsite-packagesdjangocoremanagement__init__.py", line 440, in execute   
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:UsersDELLDesktopMdrift_Wagtailvenvlibsite-packagesdjangocoremanagementbase.py", line 402, in run_from_argv 
self.execute(*args, **cmd_options)
File "C:UsersDELLDesktopMdrift_Wagtailvenvlibsite-packagesdjangocoremanagementbase.py", line 448, in execute       
output = self.handle(*args, **options)
File "C:UsersDELLDesktopMdrift_Wagtailvenvlibsite-packagesdjangocoremanagementcommandsloaddata.py", line 102, in handle
self.loaddata(fixture_labels)
File "C:UsersDELLDesktopMdrift_Wagtailvenvlibsite-packagesdjangocoremanagementcommandsloaddata.py", line 163, in loaddata
self.load_label(fixture_label)
oad_label
for obj in objects:
File "C:UsersDELLDesktopMdrift_Wagtailvenvlibsite-packagesdjangocoreserializersjson.py", line 70, in Deserializer  
yield from PythonDeserializer(objects, **options)
File "C:UsersDELLDesktopMdrift_Wagtailvenvlibsite-packagesdjangocoreserializerspython.py", line 103, in Deserializer
Model = _get_model(d["model"])
File "C:UsersDELLDesktopMdrift_Wagtailvenvlibsite-packagesdjangocoreserializerspython.py", line 183, in _get_model 
raise base.DeserializationError(
django.core.serializers.base.DeserializationError: Problem installing fixture 'C:UsersDELLDesktopMdrift_Wagtailmdriftdata.json': Invalid model identifier: 'wagtailsearch.sqliteftsindexentry'

wagtailsearch。sqliteftsindexentry表用于存储用于搜索的索引数据-这在数据库之间是不同的,因此在Postgres上不存在这个表。你应该使用--exclude=wagtailsearch.sqliteftsindexentry选项将它从dumpdata命令中排除——这将给你一个可以加载到Postgres中的.json转储。

迁移成功后,运行./manage.py update_index来填充Postgres的搜索索引。

最新更新