用pycharm使用south的新手难度 - DatabaseError:没有这样的表:south_migrationhistory

时间:2012-02-26 13:01:38

标签: django django-south pycharm

我正在使用sqlite3和pycharm来了解有关django的更多信息,并且谷歌搜索发现南方建议在创建模型后更容易修改模型。

我正在尝试遵循http://south.aeracode.org/docs/tutorial/part1.html#starting-off上的建议。

我迄今为止取得的最大成功是创建一个简单的模型并在向south_apps添加南方之前运行syncdb。这样就创建了初始表,我有机会创建一个超级用户。 (如果没有用户,Django管理员似乎会担心)。

然后我将south添加到installed_apps,然后运行django_manage.py schemamigration bookmarks --initial

似乎工作正常。创建一个名为migrations的新目录,其中包含我的app文件夹中的几个文件以及一条令人鼓舞的消息。 “已创建0001_initial.py。您现在可以将此迁移应用于:./ manage.py迁移书签”

下一步 - django_manage.py“迁移书签会生成以下错误消息 django.db.utils.DatabaseError:没有这样的表:south_migrationhistory。

我认为该表将在第一个schememigration步骤中创建。我错过了什么?有人可以帮忙吗?

玛格

3 个答案:

答案 0 :(得分:29)

South使用自己的表来跟踪已应用的迁移。在应用任何迁移之前,必须使用python ./manage.py syncdb创建此迁移。

除了设置南方之外,您还会发现项目中非南方应用有时需要syncdb,例如非常常见的django.contrib.auth

请注意,为方便起见,您可以像这样一次运行

python ./manage.py syncdb --migrate

答案 1 :(得分:2)

我的最新(不成功)努力如下

  1. 创建应用程序 - synch db - 创建超级用户
  2. 测试运行-admin屏幕显示基本表
  3. 从命令行添加south和syncdb,并创建manage.py syncdb - south_migrationhistory表。添加基本​​的香草模型
  4. 尝试了manage.py syncdb -manage的各种组合,以及 来自Pycharm的schemamigration(如果从pycharm中运行a 迁移目录在应用程序中创建      - 如果从命令行运行,目录似乎不是     创建。)
  5. Django管理员屏幕显示表格 - 但如果我尝试编辑     表说它不存在
  6. 检查数据库结构     使用SQLite浏览器 - 新创建的模型表不存在
  7. 我开始认为整件事情不值得浪费时间 - 也许我最好只修改SQLite浏览器中的表格

答案 2 :(得分:0)

similar question

中回答
  

运行syncdb将Django和South表添加到数据库中。