Django错误 OperationalError: no such column: xxx

模型前后操作如下:

第一次迁移:

class Snippet(models.Model):
    created = models.DateTimeField(auto_now_add=True)
    title = models.CharField(max_length=100, blank=True, default=‘‘)
    code = models.TextField()
    linenos = models.BooleanField(default=True)
    language = models.CharField(choices=LANGUAGE_CHOICES, default=‘python‘, max_length=100)
    style = models.CharField(choices=STYLE_CHOICES, default=‘friendly‘, max_length=100)

更改后:

class Snippet(models.Model):
    created = models.DateTimeField(auto_now_add=True)
    title = models.CharField(max_length=100, blank=True, default=‘‘)
    code = models.TextField()
    linenos = models.BooleanField(default=True)
    language = models.CharField(choices=LANGUAGE_CHOICES, default=‘python‘, max_length=100)
    style = models.CharField(choices=STYLE_CHOICES, default=‘friendly‘, max_length=100)
    owner = models.ForeignKey(‘auth.User‘, related_name=‘snippets‘, on_delete=models.CASCADE)
    highlighted = models.TextField()

Djnago修改数据库分以下三步:

1、对models.py进行更改(正常)

2、使用makemigrations创建迁移

3、使用migrate执行迁移

分析:在该修改后模型后,第二次同步数据库时code和highlighted字段不能为空。如果第一次就创建highlighted字段,则无影响,因为该表没有现有的行。如果数据表第一次已经创建并且已经在表插入数据,则必须定义一个默认值来填充已有的行, 否则数据库会因为违反数据的完整性而不接受数据表更改。

解决方法:改为

code = models.TextField(default =‘‘)

highlighted = models.TextField(default =‘‘)

原文地址:https://www.cnblogs.com/delav/p/9651495.html

时间: 2024-11-08 22:57:05

Django错误 OperationalError: no such column: xxx的相关文章

查询避免Unknown column ‘xxx’ in ‘where clause

问题: 单从字面理解,我们很容易得出列名称不存在的结论, 但是,很多时候并不是列名出错造成的,而是由于拼凑sql语句时对字符类型数据没有用引号引起来造成的. 例子: 例如:  String sql="select age from user where name="+xxx+"; 设置name的值为columName,则错误如下: Unknown column  'xxx′ in ‘where clause’ 解决步骤: sql中如果name是整型的倒不会出现什么错误,而如果

MYSQL导入数据时,出现错误:Incorrect string value: '\xF0\x9F...' for column 'XXX' at row 1

Incorrect string value: '\xF0\x9F...' for column 'XXX' at row 1 这个问题,原因是UTF-8编码有可能是两个.三个.四个字节.Emoji表情或者某些特殊字符是4个字节,而MySQL的utf8编码最多3个字节,所以数据插不进去. 我的解决方案是这样的 1.在mysql的安装目录下找到my.ini,作如下修改: [mysqld] character-set-server=utf8mb4 [mysql] default-character-

Error: ER_BAD_FIELD_ERROR: Unknown column 'xxx' in 'where clause'

node中调用mysql模块读写时候,如果直接插入字符串: connection.query('SELECT * from  users WHERE name=' + data.name , callback); 或者: connection.query('SELECT * from  users WHERE name = alan' , callback); 会抛出这个错误. 正确写法应该是: connection.query("SELECT * from  users WHERE name=

Mybatis操作数据时出现:java.sql.SQLSyntaxErrorException: Unknown column 'XXX' in 'field list'

这个错误比较重要,而且很常见,故单独进行说明: Mybatis出现:Unknown column 'xxx' in 'field list' 先来看一下程序的内部: dao.addUser("ll111", "ll11");// 添加用户l main函数测试 //添加用户 成功1 失败0 public int addUser(String userPhoneNumber, String userPassword) throws IOException { //用户的

mysql Error:1052 Column 'xxx' in where clause is ambiguous

Integrity constraint violation: 1052 Column 'deleted' in where clause is ambiguous MySQL查询的时候出现这个错误提示多半是因为: 1.多表查询的时候几个表中同时出现了某个相同的列名,而在查询条件WHERE后面又没有指定是那个表. 2.查询结果里面有两个相同的列名,而没有指定是哪个表. 比我我的原因就是查询两张表,每个表都有创建时间,但查询不知到加上哪涨,所以需要重新定位 mysql Error:1052 Col

sql数据库删除表的外键约束(INSERT 语句与 FOREIGN KEY 约束"XXX"冲突。该冲突发生于数据库"XXX",表"XXX", column 'XXX)

使用如下SQL语句查询出表中外键约束名称: 1 select name 2 from sys.foreign_key_columns f join sys.objects o on f.constraint_object_id=o.object_id 3 where f.parent_object_id=object_id('表名') 执行如下SQL语句删除即可. 1 alter table 表名 drop constraint 外键约束名 sql数据库删除表的外键约束(INSERT 语句与 F

Data truncated for column xxx

对于字段XXX,数据发生截断.原因是:字段的取值,不满足约束条件.比如下面的情况: 原来的字段取值为null,现在约束字段not null,就会报错Data truncated for column xxx

C语言错误:request for member ‘xxx’ in something not a structure or union

今天在编译一个C语言程序时,对于结构体变量,报出错误 Error: request for member 'xxx' in something not a structure or union. 经过调试发现是 . 与 -> 搞错了. 如果它是地址,就在它后边用 ->,如果它不是地址,就在它后边就用 . 代码举例简略如下: #include <stdio.h> #include <string.h> typedef struct Test_t { char name[2

Data too long for column &#39;xxx&#39; at row

Data too long for column 'xxx' at row 数据库的默认的utff-8,且连接的字符串也设置了utf-8,数据库字段用的text,但是还是报错,原因超出了长度,要最大的话可以设置为LONGTEXT mysql中text 最大长度为65,535(2的16次方–1)字符的TEXT列.如果你觉得text长度不够,可以选择 MEDIUMTEXT最大长度为16,777,215. LONGTEXT最大长度为4,294,967,295 详细用法可查看手册 http://dev.