模型更改 Django、Mezzanine、South
我的模型是
class Author(Page):
dob = models.DateField("Date of birth")
我删除了出生日期字段,并用以下内容更新了模型:
class Author(Page):
name = models.CharField(max_length = 250)
email = models.EmailField()
然后我输入了两个命令:
python manage.py schemamigration project_name 001_initial--add-field Author.name, Author.email
接着这个命令
python manage.py migrate project_name
你可以看到附上的图片:上面的命令让我无法保存模型中的更改。
需要你的帮助!
1 个回答
0
解决方案:
1) 在添加新字段之前,先打开命令提示符,进入你的项目或应用所在的文件夹。然后输入这个命令,准备在models.py文件中添加字段:python manage.py schemamigration your_project_or_app_name --initial
2) 接下来输入这个命令:python manage.py migrate your_project_or_app_name --fake 0001
(或者你看到的其他迁移编号 - 这里的0001是你的迁移编号),这样可以把数据库的状态设置为已经创建了表的状态。
3) 然后去你的models.py文件中添加新字段,之后在命令行中运行这个命令:python manage.py schemamigration your_project_or_app_name --auto
4) 最后一步,保存更改,运行这个迁移命令:python manage.py migrate your_project_or_app_name
解决方案参考:Django & South: 添加新字段但出现数据库错误 "表已存在" 作者:Yuji 'Tomita' Tomita