Django models文件模型变更注意事项(表结构的修改)
表结构的修改
1、表结构修改后,原来表中已存在的数据,就会出现结构混乱,makemigrations更新表的时候就会出错
比如第一次建模型,漏了一个字段,后来补上了。(经常遇到模型字段修改)
重新makemigrations,然后报错
数据库规则:除了新建表,如果你再次增加字段,数据库会有一些自动检测的东西(比如有没有默认值,是否允许为空)
如果表中已经有数据,这个字段还是非空的,且没有设定默认值,后台检测不通过就会报错。
解决方法(有两种):
1、新增加的字段,设置允许为空。生成表的时候,之前数据新增加的字段就会为空。(null=True允许数据库中为空,blank=True允许admin后台中为空)
2、新增加的字段,设置一个默认值。生成表的时候,之前的数据新增加字段就会应用这个默认值(default=None,默认值为空)
删除0001_initial.py,再次makemigrations
接着再往数据库推送,python3 manage.py migrate
原来是自己在数据库手动添加过,不是通过django方式的。
于是手贱想删除表,删了再次执行,发现没有变化
删表有风险,可能误删其他表,如果表不多,所以还是新建一个库,环境干净(强迫症啊)
最后完美解决
------------------------------------------------------------------------------------------------------------------
更多细节,交流QQ群:823625453
转载于:https://www.cnblogs.com/hightech/p/10749051.html
Django models文件模型变更注意事项(表结构的修改)相关推荐
- frm ibd文件导入mysql_Mariadb,Mysql如何根据.frm和.ibd文件来恢复数据和表结构
废话不多说直接进入正题,Mariadb,Mysql根据.frm和.ibd文件来恢复数据和表结构,大体分为三个步骤: 1.创建表结构 2.导入表结构 3.恢复表数据 接下来,我们按照这三个步骤一步一步恢 ...
- mysql ibd frm文件_Mariadb,Mysql如何根据.frm和.ibd文件来恢复数据和表结构
废话不多说直接进入正题,Mariadb,Mysql根据.frm和.ibd文件来恢复数据和表结构,大体分为三个步骤: 1.创建表结构 2.导入表结构 3.恢复表数据 接下来,我们按照这三个步骤一步一步恢 ...
- MySQL数据库基础学习小终结:连接查询、表结构的修改、约束条件、MySQL与python交互
目录 一.连接查询 1.内连接 2.外连接 二.表结构的修改--alter 1.修改表名 2.修改字段名 3.修改字段类型--modify 4.添加字段 (1)添加日期字段:datetime (2)e ...
- oracle改表结构,oracle 表结构的修改
oracle 表结构的修改 更改表的结构 1.编辑表的字段 修改一个列的数据类型(一般限于修改长度,修改为一个不同类型时有诸多限制): 语法: ALTER TABLE 表名 MODIFY(列名 数据类 ...
- Django框架的模型层之多表操作
目录 一 创建模型 二 表记录的增删改 一对多 多对多 三.基于对象的跨表查询 一对一查询(Author 与 AuthorDetail) 一对多查询(publish与book) 多对多查询 (Auth ...
- proto文件导入mysql_导出mysql表结构生成grpc需要的proto文件工具
使用过grpc的同学都知道,写proto文件比较繁琐,尤其是写message,对应很多字段,为此写了一个简单的从mysql直接读取表结构,生成proto文件的工具. 工具的使用很简单,需要简单的配置, ...
- oracle改表结构,Oracle修改表结构
修改表结构 -- 使用alert关键字 修改表名:alert table 原表名 rename to 新表名; --(1)向表中增加新列(添加字段) alert table 表名 add 添加的列 ...
- SQL语句查看表结构和修改字段长度
MySQL 和 SQLserver 数据库: 查看表结构: select * from information_schema.columns where table_name='表名' 修改字段长度: ...
- 数据库表结构相关修改
该文章主要内容为表结构的变化,包括表名修改.字段的新增.删除和修改,下面为具体内容: 一.新建表 1,Oracle create table oracle_test( name varchar(20) ...
最新文章
- 次小生成树(Prim + Kruaskal)
- Globus toolkit3.0
- Py之scikiti -survival:scikiti -survival库的简介、安装、使用方法之详细攻略
- sql字符串分隔函数
- 【数据结构】排序算法及优化整理
- NSMutable属性声明时为什么不能使用copy
- 简单有趣的c语言小程序,一个有趣的小程序
- Python 异常后变量的赋值
- “1251 – Client does not support authentication protocol requested by server;consider upgrading MySQL
- android sdk no space,Android SDK folder taking a lot of disk space. Do
- Django:ORM基本操作-CRUD,管理器对象objects,----->删除:删除单个数据,删除批量数据
- eclipse修改java热部署免重启tomcat在Host标签下增加Context直接将docBase指定为项目的WebContent路径
- C#泛型学习实例(简单易懂)
- MediaCodec进行编解码AAC(文件格式转换)
- Win7-64位 Cygwin编译Redis
- android 中tools命名空间的全解
- eclipse上svn创建分支、合并、切换
- 【BP回归预测】鲸鱼算法优化BP神经网络回归预测(多输入单输出)【含Matlab源码 1554期】
- mysql服务状态一直是启动解决方案
- The server encountered an internal error () that prevented it from fulfilling this request
热门文章
- Oracle 11g Release 1 (11.1) 查询优化器的访问路径
- 求助:如何在Vista系统环境下增加系统盘C盘的容量?
- js createElement appendChild createTextNode用法
- CSS 外补白(Margin) 内补白(Padding) 边框属性 定位(positioning)属性 布局(layout)属性
- HyperlinkButton——WP8控件学习
- 不写技术文档是个什么梗
- tcp断开连接的几种状态
- 建立索引要考虑的因素
- remap(地址重映射)机制
- 学会理解并编辑/etc/fstab