Wagtail从SQLite3迁移至PostgreSQL时遇无效模型标识符错误
解决Wagtail从SQLite迁移PostgreSQL时loaddata报错问题
问题原因
wagtailsearch.sqliteftsindexentry是Wagtail为SQLite数据库定制的全文搜索索引模型,切换到PostgreSQL后,Wagtail会使用PostgreSQL对应的搜索索引模型,而你导出的data.json包含了SQLite专属的索引数据,加载到PostgreSQL环境时系统找不到该模型,导致报错。
解决步骤
重新导出干净的数据
导出时排除SQLite专属的搜索索引模型,执行命令:python manage.py dumpdata --exclude wagtailsearch.sqliteftsindexentry --exclude wagtailsearch.sqliteftsindexfield --output data_cleaned.json手动清理现有fixture(可选)
若不想重新导出,直接编辑data.json,删除所有model字段值为wagtailsearch.sqliteftsindexentry和wagtailsearch.sqliteftsindexfield的数据条目。加载清理后的fixture
使用处理好的文件执行数据加载:python manage.py loaddata data_cleaned.json重建PostgreSQL搜索索引
数据加载完成后,重新生成PostgreSQL的搜索索引:python manage.py update_index
内容的提问来源于stack exchange,提问作者Imthiaz Muhassin
相关产品推荐
相关产品推荐

