在django模型中,我有一个名为Invitation
的类。
我执行manage.py syncdb
表Invitation
已创建。
这是我的第一张表。
但是当我创建另一个名为Image
的类并执行manage.py syncdb
它会返回错误。
Table UserInvitation already exists
。
请帮我使用syncdb命令创建表Image
。
模型
class UserInvitation(models.Model):
InvitationID = models.AutoField(primary_key=True)
InvitationCode = models.CharField(max_length=255)
Email = models.CharField(max_length=150)
ExpireDate = models.DateTimeField()
Deleted = models.BooleanField(default=False)
CreatedDate = models.DateTimeField(auto_now=True)
class Meta:
db_table = u'UserInvitation'
class UserImage(models.Model):
ImageID = models.AutoField(primary_key=True)
UserID = models.IntegerField(unique=True)
FileName = models.CharField(max_length=255)
class Meta:
db_table = u'UserImage'
答案 0 :(得分:0)
您应该使用南来反映数据库中的更改。
syncdb运行创建数据库中所有表的命令,而不仅仅是您添加的表。
对于South,您应该将模型恢复为仅具有UserInvitation类的模式,运行命令:
python manage.py convert_to_south <name of app>
添加UserImage类并运行命令:
python manage.py schemamigration --auto <name of app>
python manage.py migrate <name of app>
这会在数据库中添加userimage表。
此外,元类中的db_table字段应为小写,因为表名在创建时为小写(请检查数据库以确保)