【发布时间】:2016-01-21 22:01:20
【问题描述】:
对于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 设置中。
脚本将从头开始创建一个新的数据库,运行带有调试消息的导入器并为您运行 runserver,因此您可以轻松地在页面列表中查看结构如何更改。
目前的情况: sqlite 做得很好,而 postgres 的文章树搞砸了。
这个问题的所有相关代码都可以在 developer_portal/management/commands/import-external-docs-branches.py 中找到
如果有人能给我指点,将不胜感激。
非常感谢。
祝你有美好的一天, 丹尼尔
【问题讨论】:
-
如果你不使用bzr,你也可以在这里获取示例分支的内容:daniel.holba.ch/temp/debug-md-importer.tar.xz
-
很遗憾您将架构包装成两层工具。也许如果您还提供了数据库转储,更多人可以查看它。 (在我看来,这可能是一个简单的 DBA 东西,因为这是你的第一个端口)
-
分支中包含数据库转储?或者它缺少什么? “第一个端口”是什么意思?你能详细说明一下吗?
-
数据库转储,如:
pg_dump -U user_name database_name >dumpfile.dmp -
嗯...这可以通过上面的说明轻松复制,因此无论是使用默认 Django+Django CMS 设置的默认安装还是实际的 developer.uc 似乎都无关紧要生产主机。上面的说明应该可以为您提供一个工作数据库,并可以显示实际问题。
标签: django postgresql django-cms