gpt4 book ai didi

django - 使用 postgres 在 Django CMS 3.0 (mptt) 文章树中的错误位置添加/更新页面

转载 作者:行者123 更新时间:2023-11-29 12:04:36 24 4
gpt4 key购买 nike

对于 https://developer.ubuntu.com我们使用 Django CMS 3.0.6 (mptt),我们对此非常满意。

最近我们添加了从项目的 bzr 分支导入 markdown 文档的功能,这样我们就可以在我们感兴趣的一些上游项目发生变化时让 cronjobs 为我们更新文章。我花了一些时间来完成它,但我们让它工作了。在本地,我使用了 sqlite(默认)并且很高兴。一旦部署到暂存区,导入也能正常工作,但脚本添加或更新的文章最终会出现在文章树中的不同位置。一段时间后,我可以使用本地 postgres 安装重现它。

我们目前正在跟踪这里的问题:https://bugs.launchpad.net/developer-ubuntu-com/+bug/1506861

我有点迷茫,不太知道如何调试它。

我为此整理了一个测试用例,它基本上是:

$ bzr branch lp:~developer-ubuntu-com-dev/developer-ubuntu-com/debug-md-importer
$ cd debug-md-importer
$ virtualenv ./env
$ ./env/bin/pip install -r requirements.txt
$ ./env/bin/pip install django psycopg2

然后应用像 http://pastebin.ubuntu.com/12798510/ 这样的差异到 developer_portal/settings.py 并运行

$ sudo apt install python-pip python-dev libpq-dev postgresql postgresql-contrib
$ sudo -u postgres psql -c "CREATE USER developerportal_user WITH PASSWORD '123abc';"

要查看正在运行的问题,请运行:

$ ./postgres-retry.sh

在 postgres 设置中

$ ./sqlite-retry.sh

在 sqlite 设置中。

脚本将从头开始创建一个新的数据库,使用调试消息运行导入器并为您运行运行服务器,这样您就可以轻松地检查页面列表中的结构如何更改。

现状:sqlite 做的很好,而 postgres 的文章树搞砸了。

这个问题的所有相关代码都可以在developer_portal/management/commands/import-external-docs-branches.py中找到

如果有人能给我指点,将不胜感激。

非常感谢。

祝你有美好的一天, 丹尼尔

最佳答案

我从 http://bazaar.launchpad.net/~developer-ubuntu-com-dev/developer-ubuntu-com/debug-md-importer/view/head:/requirements.txt#L18 看到您使用的是 Django CMS 3.0.6,这意味着您正在使用 Django MPTT。

一般来说,人们在使用 django CMS 时遇到的大多数树问题都被证明是移动后的损坏,与 Django MPTT 相关。

如果您还没有这样做,您可以尝试以下操作之一:

  • 不要使用 django-mptt==0.6.1 尝试最新版本的 https://github.com/django-mptt/django-mptt
  • 我没有机会运行您的流程,但如果可能的话,请尝试在每次操作后运行 manage.py cms fix-mptt 命令
  • 在 django CMS 3.1 中,我们开始使用 Treebeard 而不是 MPTT。如果您能够尝试使用 3.1 而不是 3.0.x 而无需太多额外工作,那可能是一个有用的实验。

关于django - 使用 postgres 在 Django CMS 3.0 (mptt) 文章树中的错误位置添加/更新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33284171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com