我是python新手,我在型号.py像这样:
class book(models.Model):
name = models.CharField(max_length = 20)
grade = models.CharField(max_length = 20, blank = True, null = True)
def __unicode__(self):
return self.name +self.grade + self.nick
现在,当我重写代码时,我想在table book中插入一列:
class book(models.Model):
name = models.CharField(max_length = 20)
grade = models.CharField(max_length = 20, blank = True, null = True)
nick = models.CharField(max_length = 20)
def __unicode__(self):
return self.name +self.grade + self.nick
但是,当我运行命令:python管理.pysyncdb正常 但是,当我跑的时候:
from db.models import book book.objects.all() here is wrong,
OperationalError: no such column: db_book.nick
我真的不知道怎么改,顺便问一下,怎么把整张桌子都扔了?就像MySQL一样? 谢谢
你需要告诉你的数据库你的模型每次修改都会改变。你应该学会如何使用South。South允许在Django模型中创建迁移,而不是编写
alter table ...
South为您跟踪更改并将其应用于数据库。这里有一个很好的教程http://south.readthedocs.org/en/latest/tutorial/part1.html无论如何,如果您是从Django开始的,那么在django1.7中,模式迁移是Django固有的,您不需要第三方应用程序。也许值得去看看https://docs.djangoproject.com/en/dev/topics/migrations/
如果该表没有任何重要数据,或者您只是在测试,那么您可以从数据库中删除该表。然后运行
python manage.py syncdb
相关问题 更多 >
编程相关推荐