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,删除字段:
    解决办法:直接注释模型字段
    注意影响,如果你直接注释了模型字段,数据库数据会清掉,执行此操作需要检查代码,每次合并分支前,避免数据库老数据丢失
  • 相关阅读:
    一个诡异的COOKIE问题
    PHP与JAVA构造函数的区别
    PHP获取上个月最后一天的一个容易忽略的问题
    jquery屏幕滚动计算事件总结
    Javascript 代理模式模拟一个文件同步功能
    Javascript实现HashTable类
    Javacript实现字典结构
    Javascript正则对象方法与字符串正则方法总结
    一个app,多个入口图标,activity-alias实现多程序入口并显示指定view完成
    javascript「篱式」条件判断
  • 原文地址:https://www.cnblogs.com/SunshineKimi/p/13800141.html
Copyright © 2011-2022 走看看