Django 我怎样才能让我的南迁工作?
我很难让south来处理我的django项目,我遵循了south关于将应用程序转换为south的文档,也查看了这里(),但都是徒劳的 将south添加到已安装的应用程序并运行syncdb后Django 我怎样才能让我的南迁工作?,django,migration,django-south,Django,Migration,Django South,我很难让south来处理我的django项目,我遵循了south关于将应用程序转换为south的文档,也查看了这里(),但都是徒劳的 将south添加到已安装的应用程序并运行syncdb后 Synced: > django.contrib.messages > django.contrib.staticfiles > smartmin > nsms.console > django_extensions > pagination > res
Synced:
> django.contrib.messages
> django.contrib.staticfiles
> smartmin
> nsms.console
> django_extensions
> pagination
> restaurant_detail
> live
> debug_toolbar
> orders
> django.contrib.admindocs
Not synced (use migrations):
- django.contrib.auth
- django.contrib.contenttypes
- django.contrib.sessions
- django.contrib.sites
- guardian
- south
- django_quickblocks
- rapidsms
- rapidsms_httprouter
- sorl.thumbnail
- djangoratings
- agon_ratings
- django.contrib.admin
(use ./manage.py migrate to migrate these)
此时,我执行这个命令,python manage.py migrate
,这会产生错误django.db.utils.DatabaseError:relation“south\u migrationhistory”不存在
第1行:…分划“,”南方移民历史“,”应用“来自南方移民。。。
我做错了什么?如果这是您的第一次迁移,或者您只是想重新开始:
rm-Rf您的应用程序/migrations/
python manage.py syncdb--migrate
python manage.py模式迁移您的应用程序--auto
python manage.py迁移您的应用程序
这对我很有用:)您必须首先迁移south本身以创建south表,然后才能迁移其他应用程序:
# python manage.py migrate south
# python manage.py migrate
似乎没有在数据库中创建迁移表。这有点奇怪,也许这会奏效:
python manage.py schemamigration south --initial
python manage.py migrate south
然后继续进行其他迁移。这一切都是因为在我的
站点包中,south已经有了一个迁移目录,我不知道它在那里。当我去掉这个目录时,一切都很好。
Apologies stackoverflow的同事们,他们努力解决由于我心不在焉而引起的问题。这个问题可以通过以下善意的建议来解决:如果您在调试尝试的任何时候尝试python manage.py schemamigration south--initial
,您将在South应用程序本身的站点包中创建一个“migrations”文件夹。不幸的是,migrations
文件夹的存在是South在执行更改后的syncdb进程时决定是否跳过应用程序的方式。包括如果该应用程序。。。在南方
当您删除数据库以尝试从头开始调试时,South修改的syncdb将跳过创建South_migrationhistory
表,前提是migrations文件夹更清楚,并且migrations表需要South_migrationhistory
表才能工作
要解决这个问题:
进入你的网站包,删除south应用程序中的migrations/
文件夹李>
最后运行一次python./manage.py syncdb
通过pip卸载/重新安装South并不会真正删除它,因为它会保留不受影响的文件夹
或者,针对同一个错误提出了解决方案,尽管它在当时被归因于一个南方错误。您尝试过syncdb吗--migrate@Charl它在你安装的应用程序中返回相同的错误?是的,它是@krak3n,如果不是的话,我会得到一个不同的错误..这是一个救生圈,当你执行pip卸载south时,该文件夹甚至不会被删除:)如果你没有south表,你想将south表添加到你不存在的south表中吗?@Liarez我非常感谢你的反馈,但正如你所看到的,这个问题的答案有点奇怪,而且已经快一年了。当我回答这个问题时,我只是有一种预感(正如你所看到的,还有其他人)。你希望我怎么提醒你我当时在想什么?不管怎样,请随意否决:)我只是遇到了这个问题,我看到很多人重复你的答案,如果南方不努力移民到他自己身上,那就没有任何意义了,这就是为什么否决,因为答案根本没有帮助all@Liarez很公平。很高兴您找到了问题的答案。注意:您可能需要删除其他目录中的迁移文件夹,如
site packages/django/contrib/auth/migrations