【问题标题】:Model Changes Django, Mezzanine, South模型更改 Django、Mezzanine、South
【发布时间】:2014-05-16 22:51:27
【问题描述】:

我的模型是

class Author(Page):
    dob = models.DateField("Date of birth")

我删除了 dob 字段并更新了模型:

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

您可以看到附加图片:以上这些命令不允许我保存模型中的更改。

需要你的帮助!

【问题讨论】:

  • 如果更改模型后运行python manage.py schemamigration project_name --auto然后运行migrate怎么办?
  • @alecxe 然后这个命令返回“NOTHING SEEMS TO BE CHANGE”

标签: python django django-south mezzanine


【解决方案1】:

解决方案:

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 文件并在你的 models.py 文件中添加你的新字段,然后在你的 cmd 中运行这个命令python manage schemamigration your_project_or_app_name --auto

4) 保存更改的最后一步运行最后一个迁移命令python manage.py migrate your_project_or_app_name

解决方案参考:Django & South: Adding new field but DatabaseError occurs "table already exists" by Yuji 'Tomita' Tomita

【讨论】:

    猜你喜欢
    • 2013-05-22
    • 1970-01-01
    • 2012-08-09
    • 2012-03-08
    • 1970-01-01
    • 2012-12-28
    • 1970-01-01
    • 1970-01-01
    • 2014-05-01
    相关资源
    最近更新 更多