前言:今天也是充满bug的一天,脸上笑嘻嘻。。。。(继续,讲文明,懂礼貌)

1,问题描述,models中的字段设置的是浮点型,但是输出的结果总是int()类型

models

average_score = models.FloatField(verbose_name='平均分')

2、查找原因,首先进入数据库

 mysql  #进入数据库

 show databases;    

 use mydata;  进入你的数据库

 des knowledge_knowledgebase; 查看相应字段

然后就会发现,是的,现在average_acore的字段是int()没错的

3、这时候你就会说同步一下数据库不就好了,然而并不是我太傻太天真。

python manage.py makemigrations  报错

django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency users.0001_initial on database 'default'

原因:大概原因是因为admin的模型依赖了之前默认的user模型吧

4、最终解决方案

首先将migrations下的数据删除,然后在migrate肯定是可以的,但是测试需要我必须保留其中的数据,解决方案如下。

a、首先建一个新表

1、drop database mydata2;

2、 create database mydata2 character set utf8 collate utf8_bin

b、在setting中指向该数据库

c、数据reset

sh reset.sh  该文件内容(该内容就是直接删除migrations目录下的数据,重新编译)

 #!/usr/bin/env bash
rm -rf user_center/mi*
rm -rf alert_center/mi*
rm -rf count_center/mi*
rm -rf cmdb_center/mi*
rm -rf work_center/mi*
rm -rf knowledge/mi*
rm -rf call_center/mi*
rm -rf report_center/mi*
python manage.py makemigrations --empty work_center
python manage.py makemigrations --empty cmdb_center
python manage.py makemigrations --empty call_center
python manage.py makemigrations --empty report_center
python manage.py makemigrations --empty user_center
python manage.py makemigrations --empty count_center
python manage.py makemigrations --empty alert_center
python manage.py makemigrations --empty knowledge
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser

d、将原数据库mydata的数据导出

  mysqldump -uroot  mydata > mcenter2.sql

e、进入mysql环境

 show databases; 

 use mydata2;  #新表

 desc knowledge_knowledgebase;

 source /home/mcenter_backstage/mcenter_backstage/mcenter2.sql; #将原表的数据同步到新表

 alter table knowledge_knowledgebase modify column average_score float(5,2); #更改字段的数据类型

 alter table knowledge_knowledgebase modify column create_time datetime;  #更改字段的数据类型

总结:当数据库中包含数据的时候,无法migrate成功,所以只能更改数据库中的相应字段,这个办法算是比较笨了。后续找到解决办法会更新。

Django 无法同步数据库model相应字段问题的更多相关文章

  1. Django入门:操作数据库(Model)

    Django-Model操作数据库(增删改查.连表结构) 一.数据库操作 1.创建model表         基本结构 1 2 3 4 5 6 from django.db import model ...

  2. django无法同步数据库 Error loading MySQLdb module: No module named ‘MySQLdb‘

    最近在学习Python,打算先看两个在线教程,再在github上找几个开源的项目练习一下,在学到“被解放的姜戈”时遇到django同步数据库时无法执行的错误,记录一下. 错误现象: 执行python ...

  3. django 修改字段后,同步数据库,失败:django.db.utils.InternalError: (1054, "Unknown column 'api_config.project_id_id' in 'field list'")

    问题原因是,修改字段后,同步失败了,然后执行查询的时候,就会提示这个错误,这个字段没有 最暴力的方法可以直接在数据库中修改字段,但是修改后,models没同步,可能会存在问题,因此开始我的百度之旅(这 ...

  4. 自动化监控系统(二)连接数据库,创建app,添加model,同步数据库

    数据库我使用:mysql5.7 程序连接数据库的模块:pymysql 一.创建数据库: dbname:automatedmonitor 二.使用pip安装pymysql,这里我直接在pycharm上安 ...

  5. Django数据库设计中字段为空的方式

    今天在做数据库设计的时候,设计了如下User表,其中我把email和phone字段设置为允许为空: class User(models.Model): username = models.CharFi ...

  6. Django中的Model(字段)

    Model Django中的model是用来操作数据库的,Model是一个ORM框架,我们只需要关心model的操作,而不需要关心到底是哪一种数据库. 一.基本知识: 数据库引擎: Django中自带 ...

  7. django model常用字段类型

    摘自 http://www.cnblogs.com/wt869054461/p/4014271.html V=models.AutoField(**options) #int:在Django代码内是自 ...

  8. Django---ORM的常用字段和自定义字段,DjangoORM字段与数据库类型对应,字段参数和Meta的参数,Django的admin操作,13中orm操作方法,单标的双下方法

    Django---ORM的常用字段和自定义字段,DjangoORM字段与数据库类型对应,字段参数和Meta的参数,Django的admin操作,13中orm操作方法,单标的双下方法 一丶ORM常用字段 ...

  9. Django 同步数据库的时候app中的models的表没有成功创建

    出现  no  changes detected python3 manage.py makemigrations --empty blog # blog就是你的app名字,此处要写成自己的app名字 ...

随机推荐

  1. python3运行调用htmltestrunner时,报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0

    之前解决过一次,又忘了,这次写下来了..百度没有的,跟我环境有关! 环境:自动化运行环境python3.6.5 上期说到了,写了一个bat来运行runallcase.py. 但是双击运行却报错:Uni ...

  2. 如何把U盘的两个盘或者多个盘合成一个

    1.插入U盘,导出所有重要数据. 2.右击我的电脑,点管理打开设备管理器. 3.在设备管理器里找到磁盘管理. 4.在磁盘管理右侧出现下图: 5.如图是windows 7的界面. 6.找到U盘,图上是磁 ...

  3. Java selenium下拉滚动页面

    Selenium强大之处在于,可以操作模拟键盘和点击页面的任何结构,本文对于Selenium的视图滚动操作方法进行解释. 1.可以滑动页面到最底端: //设置本地ChromDrive驱动路径,改成你自 ...

  4. Vue.js ---Hello---1

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  5. Application Server was not connected before run configuration stop, reason: Unable to ping server at localhost:1099

    方法:把catalina.bat 文件中set JAVA_OPTS= -Xmx1024M -Xms512M -XX:MaxPermSize=256m这行去掉,具体看下面两篇博客 https://blo ...

  6. Mysql中判断是否存在

    不能像sqlserver一样用if not exists或者exists,应该这样: DECLARE p_count int; set p_count=0; select 1 into p_count ...

  7. hfs 文件存储

    hfs 服务器上面的和本地拖上去的文件是同一个文件.对本地文件拖上去之后再修改,服务器文件也会修改.所以服务器要有一个自己的文件存放.

  8. 5.springboot-------Yaml

    springboot配置文件: Yaml是什么玩意? Yaml的基本语法 编写规则 1.大小写敏感,同json: 2.通过缩进表示层级关系:符号含义 注意事项:字符串默认不需要加上单引号或双引号. # ...

  9. Java实现JSONObject对象与Json字符串互相转换

    Java实现JSONObject对象与Json字符串互相转换 JSONObject 转 JSON 字符串 Java代码: JSONObject jsonObject = new JSONObject( ...

  10. [AGC027E]ABBreviate

    Description AGC027E 给定一个仅由\(AB\)构成的字符串\(S\),给定两个操作,把\(AA\)换成\(B\),和把\(BB\)换成\(A\),问由这个字符串和任意次操作可以得到几 ...