模型更改 Django、Mezzanine、South

0 投票
1 回答
662 浏览
提问于 2025-04-18 01:22

我的模型是

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

撰写回答