首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django-进化错误

django-进化错误
EN

Stack Overflow用户
提问于 2011-07-16 03:21:42
回答 2查看 1.3K关注 0票数 1

我正在尝试使用django-evolution来修改现有项目中的一些模型。现在,当我使用syncdb时,它会说我需要做一次“进化”。

当我尝试运行时:

代码语言:javascript
复制
python manage.py evolve --hint --execute

我在终端中看到了这个错误,但我还是个新手,所以我在排除这个错误时遇到了麻烦。

错误码:

代码语言:javascript
复制
Traceback (most recent call last):
File "manage.py", line 11, in <module>
execute_manager(settings)
File "/home/steve/lib/python2.6/site-packages/django/core/management/__init__.py", line 361, in execute_manager
utility.execute()
File "/home/steve/lib/python2.6/site-packages/django/core/management/__init__.py", line 306, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/steve/lib/python2.6/site-packages/django/core/management/base.py", line 192, in run_from_argv
self.execute(*args, **options.__dict__)
File "/home/steve/lib/python2.6/site-packages/django/core/management/base.py", line 219, in execute
output = self.handle(*args, **options)
File "/var/sites/placeholder/placeholder/placeholder/apps/django_evolution/management/commands/evolve.py", line 87, in handle
hinted_evolution = diff.evolution()
File "/var/sites/placeholder/placeholder/placeholder/apps/django_evolution/diff.py", line 197, in evolution
changed_attrs[prop] = current_field_sig.get(prop, ATTRIBUTE_DEFAULTS[prop])
KeyError: 'field_type'

谢谢,希望有人能帮我。

史蒂夫

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-19 03:16:08

我已经解决了这个问题,我会为任何遇到同样问题的人发帖。

我意识到我在我的项目中处于非常稳定的部分。因此,我备份了我的数据库,并删除了django_evolution使用的两个表。

然后,我运行syncdb来再次创建表。

这似乎起到了作用,我能够进行我的进化。

票数 2
EN

Stack Overflow用户

发布于 2013-05-09 16:25:02

我将详细说明史蒂夫的答案。

要查看django_evolution在项目数据库中创建的两个表,请使用以下命令:

代码语言:javascript
复制
python manage.py sql django_evolution

上面的命令并不是真正需要的。您可以直接转到删除表或重置表。请注意,要让上面的命令起作用,您需要在INSTALLED_APPS中安装名为“django_evolution”的应用程序。我将提供一个适用于我在Django1.2.7上的命令。是的,我仍然在1.2.7版本,因为到目前为止,我没有理由升级。在我的答案的末尾提供了解决这个问题的各种方法。您可以使用以下命令来重置:

代码语言:javascript
复制
python manage.py reset django_evolution

通过键入“yes”接受重置查询。

现在使用以下命令执行数据库同步:

代码语言:javascript
复制
python manage.py syncdb

此命令将告诉您需要改进。键入以下命令以进行演进:

代码语言:javascript
复制
python manage.py evolve --hint

如果您同意上述命令提供的提示,请继续执行演进:

代码语言:javascript
复制
python manage.py evolve --hint --execute

通过键入“yes”确认执行。

您的所有旧表和相关数据都将无缝工作。要检查类型,请执行以下操作:

代码语言:javascript
复制
python manage.py runserver

How do I drop a table from SQLite3 in DJango?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6712149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档