zoukankan      html  css  js  c++  java
  • 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,删除字段:
    解决办法:直接注释模型字段
    注意影响,如果你直接注释了模型字段,数据库数据会清掉,执行此操作需要检查代码,每次合并分支前,避免数据库老数据丢失
  • 相关阅读:
    Java异常
    JS多个对象添加到一个对象中
    JSON.parse(),JSON.stringify(),jQuery.parseJSON()
    java中什么是序列化和反序列化
    html颜色字体字符代码
    冒泡排序应用
    HTML 速查列表
    html初学(一)
    html初学(二)
    一次、二次、三次指数平滑计算思想及代码
  • 原文地址:https://www.cnblogs.com/SunshineKimi/p/13800141.html
Copyright © 2011-2022 走看看