Django如何处理对我的模型的更改?或者,这样做对我有什么帮助?
我正在考虑这样一种情况,即我已经将数据发布到我的DB中,但我不想丢失这些数据,但我需要对数据模型进行更改--例如,向特定的类添加额外的字段,更改字段的类型等等。我的理解是,syncdb永远不会修改数据库中已经存在的表。
例如,假设我有以下模型:
class Person(models.Model):
name = models.CharField(max_length=200)
phone_number=models.CharField(max_length=200)
hair_colour=CharField(max_length=50)
我可能想对我头顶上的人做些什么:
IntegerField
而不是CharField
来代替phone_number
(不管这是不是个好主意,都超出了范围.)--假设这是可能的。hair_colour
'inline‘,因为有几个人有着相同的头发颜色--相反,我希望把它改成其他型号的外键。虽然我可以想象,如果我所做的只是更新models.py,框架很难/不可能对我的数据“猜测”到底需要做什么,但我可以想象仍然有一些工具可以帮助启用它--它存在吗?
特别是,我认为选项1必须有一些好的模式。
我对Django非常陌生,没有任何其他ORM类型的经验,我认为这是--我一直对ORMs有点怀疑,主要原因如下:)
发布于 2011-07-02 10:54:59
发布于 2011-07-02 10:21:27
您所询问的大部分内容都可以通过django项目南来完成。您可以将其添加为INSTALLED_APP。创建一个基线,然后当您的模型更改时,它会创建SQL语句,将表中的表和行转换为新的模型格式。
https://stackoverflow.com/questions/6558701
复制