Python 使用Django安装South时出现问题(无法创建South_migrationhistory表)
我似乎无法让它工作 我需要南方为一堆应用程序进行迁移Python 使用Django安装South时出现问题(无法创建South_migrationhistory表),python,django,migration,django-south,Python,Django,Migration,Django South,我似乎无法让它工作 我需要南方为一堆应用程序进行迁移 下载南方0.7.3 解压缩后,运行setup.py develope(如图中所示) 通过转到python解释器并执行(无错误),仔细检查它是否处于应该的位置 南部进口 我知道 同步。。。没有找到固定装置 Synced: > django.contrib.auth > django.contrib.contenttypes > django.contrib.sessions > django.contrib.s
Synced:
> django.contrib.auth
> django.contrib.contenttypes
> django.contrib.sessions
> django.contrib.sites
> django.contrib.messages
> django.contrib.admin
Not synced (use migrations):
- south (use ./manage.py migrate to migrate these)
-在这一点上,据我所知,南方应该是同步的,对吗?
之后我做的任何事情都会抱怨数据库中没有south_migrationhistory表
另外,我正在Windows7上使用Django 1.2.7和python 2.6,在我看来,这就像是南方的一个bug 这也可能是因为做了错误的事情,比如:运行
schemamigration--auto-south
等等。我的建议是通过运行python setup.py install
或通过easy\u install或pip来安装它
South文档说:“一旦添加了South,您就需要运行./manage.py syncdb来生成South迁移跟踪表(出于各种原因,South不为自己的模型使用迁移)。”
但您的输出表明,south没有为自己的模型制作表格,因为它认为south应用程序使用了迁移
作为一种解决方法,您可以使用
python manage.py syncdb --all
这会使所有表(无论迁移如何)同步并
python manage.py migrate --fake
伪造迁移。对于没有现有表的新应用程序,添加south的步骤如下:
根据您给出的错误,听起来在步骤1和步骤2之后,您忘记运行syncdb来创建迁移表,而South应用程序找不到存储架构迁移的位置。我遇到了同样的问题。事实证明,通过一些魔法,我已经在hte south应用程序中创建了迁移 发现人:
~ $ # cd to python library
~ $ cd `python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"`
python2.7/site-packages $ cd south
python2.7/site-packages/south $ ls migrations
0001_initial.py 0002_initial.py 0003_initial.py __init__.py
这些都是不好的,不应该存在,这是触发南方跳过自己的原因。
删除所有东西,重新安装,然后syncdb再次工作
python2.7/site-packages $ rm -rf south* South*
~ $ pip install south
据我所知,您尝试运行了./manage.py migrate,但没有出现这样的表错误?如果要将South添加到现有应用程序中,则必须执行./manage.py convert_to_South yourappname,这会“伪造”您的第一次迁移。请注意convert_to_South命令的South文档中的这句话:convert_to_South命令仅在运行它的第一台计算机上完全有效。一旦您将它所做的初始迁移提交到您的VCS中,您就必须运行./manage.py migrate myapp 0001--在每台拥有代码库副本的机器上都是假的(首先确保它们是最新的模型和架构)。感谢您提供详细的反馈。我在步骤4中运行了syncdb(步骤3是一个纯可选的双重检查,以查看south是否在正确的文件夹中,因为我的计算机上安装了2个python。太棒了。--所有问题都解决了,谢谢!。我确实使用了python setup.py install来安装south。这似乎是安装了它,但不知怎的,它只是没有创建所需的表。为此,我四处搜寻了4个小时--所有。非常感谢。django.contrib.admin没有被“python manage.py syncdb”接受。它一直告诉我运行“migrate”。运行migrate会说“没有新的更改”。因此我没有任何管理表。“--all”继续进行并为我创建if。一切都很好,结局都很好!
python2.7/site-packages $ rm -rf south* South*
~ $ pip install south