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,删除字段:
解决办法:直接注释模型字段
注意影响,如果你直接注释了模型字段,数据库数据会清掉,执行此操作需要检查代码,每次合并分支前,避免数据库老数据丢失