一般来说,Django模式的改变何时需要南方?

一般来说,Django模式的改变何时需要南方?,django,django-models,django-south,Django,Django Models,Django South,我是Django的新手。我已经完成了教程,正在阅读更多的学习文档。当我试图增加我的理解时,比如说,在新的经理或模型中,我很好奇什么需要South(或者干脆放弃它,重新编写应用程序) 上面的链接基本上说,任何栏目的更改都是必要的,而下面的链接更多的是我所要求的。如果不需要对数据库的列进行任何更改,那么是否有人可以在不需要时进行概括(例如:在现有模型的基础上添加新表单/模型表单?添加管理器?) 相关的\u name属性更改只会影响您的项目,django使用它进行查询 诸如blank=True/Fa

我是Django的新手。我已经完成了教程,正在阅读更多的学习文档。当我试图增加我的理解时,比如说,在新的经理或模型中,我很好奇什么需要South(或者干脆放弃它,重新编写应用程序)

上面的链接基本上说,任何栏目的更改都是必要的,而下面的链接更多的是我所要求的。如果不需要对数据库的列进行任何更改,那么是否有人可以在不需要时进行概括(例如:在现有模型的基础上添加新表单/模型表单?添加管理器?)


相关的\u name属性更改只会影响您的项目,django使用它进行查询

诸如blank=True/False、null=True/False、symmetric=True/False等更改需要数据库更改,尽管symmetric=True/False不会触发south的更新,但该设置在字段创建时肯定会有所不同


列更改,如您文章中的链接所示,需要在数据库中进行更新,这正是south做得非常好的地方。

有两种类型的south迁移:模式迁移和数据迁移

数据迁移用于更改数据库中的数据,而不是数据库的架构

模式迁移是您感兴趣的迁移。它们用于跟踪对DB模式的更改,并且应该伴随对您的模型的任何导致DB模式更改的更改(例如创建表、删除表、删除列、更改空约束)

如果您阅读django应用程序的两次连续迁移,可能会发现一些很好的见解。 在它们中,您可以找到应用migreation的代码、恢复迁移的代码和DB模式的快照

另外,很容易检查您的模型中的特定更改是否需要南迁。只需为修改后的django应用程序运行一个schemamigration,并删除新创建的迁移(如果创建了迁移)。因为创建南迁与运行南迁不同,这是一个测试和学习的好方法

请记住,south和其他任何软件一样都是一款软件,它确实“支持”bug