1

我有一个由 South 管理的 Django 项目。当我第一次启动项目时,我运行了正常程序:

  • 安装南
  • 将 South 添加到 INSTALLED_APPS
  • 执行初始同步数据库
  • schemamigration --initial,然后是 migrate myapp

一切都运行良好,从那以后我已经进行了几次迁移。现在我启用了站点的 django 管理部分(INSTALLED_APPS、urls 等)。当我尝试添加测试用户时,收到以下错误:

Request Method: POST
Request URL:    http://127.0.0.1:8000/admin/auth/user/add/
Django Version: 1.4.3
Exception Type: DatabaseError
Exception Value:    
no such table: django_admin_log

我试着跑步schemamigration myapp --auto,但它告诉我什么都没有改变。我什至尝试运行convert_to_south django.contrib.admin,以及尝试虚假迁移,但我一直收到同样的错误。任何帮助表示赞赏。

4

2 回答 2

2

只有使用 south 的应用程序才会由 south 管理

django.contrib.admin没有。相反,您需要另一个syncdb(它将单独保留任何现有表,因此应该可以安全运行)

于 2013-02-17T18:19:01.617 回答
2

第二个答案是正确的

只有使用 south 的应用程序才会由 south 管理

所以使用南不是一个可能的解决方案。

您的问题是 syncdb 认为 django_admin_log 的表已经创建。

解决方案

  1. 打开你的django_content_type桌子。
  2. 删除name="log entry", app_label="admin", model="logentry"内容类型的记录。
  3. 再次运行同步数据库
于 2013-02-17T19:58:16.140 回答