django 模型开发迭代新增字段,修改字段,删除字段,针对旧的数据库表

1.比如模型已经写了个模型,当前数据库有旧数据了,想再加个字段age 怎么办:

class UserInfo(models.Model):
""" 用户信息储存"""
user_type_choices=[(1,"普通用户"),(2,"管理员")]

user_type=models.IntegerField(choices=user_type_choices,verbose_name="用户类型")
user_name=models.CharField(max_length=64,unique=True,verbose_name="用户名:唯一索引约束")
password=models.CharField(max_length=64,verbose_name="用户密码")

class Meta:
db_table="user_info"
verbose_name="用户信息表"

1.练习增加age字段:
class UserInfo(models.Model):
""" 用户信息储存"""
user_type_choices=[(1,"普通用户"),(2,"管理员")]

user_type=models.IntegerField(choices=user_type_choices,verbose_name="用户类型")
user_name=models.CharField(max_length=64,unique=True,verbose_name="用户名:唯一索引约束")
password=models.CharField(max_length=64,verbose_name="用户密码")
age = models.IntegerField(default=18,verbose_name="age") # 或者 null=True,default=18 设置默认值二选一,在执行 python manage.py makemigrations, python manage.py migrate appnam 操作
class Meta:
db_table="user_info"
verbose_name="用户信息表"

2.修改字段

比如,密码原来是charfiled(),现在我想改成 integerfeild() :

将诶觉办法: 直接修改模型字段类型:

password=models.IntegerField(max_length=64,verbose_name="用户密码"),执行 python manage.py  makemigrations,  python manage.py migrate  appnam 操作


3,删除字段:
解决办法:直接注释模型字段
注意影响,如果你直接注释了模型字段,数据库数据会清掉,执行此操作需要检查代码,每次合并分支前,避免数据库老数据丢失
原文地址:https://www.cnblogs.com/SunshineKimi/p/13800141.html