zoukankan      html  css  js  c++  java
  • django.db.migrations.exceptions.BadMigrationError: Migration tests in app bl

    这个错误基本上都是 替换文件后才会出现的问题 

    因为你替换后他的日志文件没有完全替换的话,那么日志对应不到就会出现这样的问题,

    一个模糊的处理办法:重新进行数据迁移:首先删除migrations中除去__init__.py的是所有文件,

    这些都是基本数据迁移后的数据库文件,之后重新数据迁移,

    python manage.py makemigrations  

    python manage.py migrate

    之后就没问题了,

    ps: python manage.py makemigrations 这种命令形式 是因为虚拟环境的创建不够完善导致的编译器是环境外的编译器,

    所以在交互式环境下命令时就必须是标准的python命令,如果虚拟环境是完整的那么,命令格式如下:

    ./manage.py makemigratins

    与之相同的有

    ./manage.py runserver

    但是在未正式发布的情况下还是用环境外的编译器,环境内的只需要跟上版本配置就行了,在正式发布前一刻在用环境内的进行测试,

    这样很多第三方库的容错性问题就会提前在环境外解决,不会因为第三方库的容错问题而导致的上线延迟。

    还有的处理方法是(阅读代码能力不强建议不这样做,建议很闲的人可以这样做,很费时间和心态):

    阅读库文件  虽然库文件内容很多,但是逻辑非清晰,开始很难读但一旦熟悉了库文件内容,对于后期的维护会非常有帮助,

    主要需要注意容易出问题的地方model层的库文件(报错率相对最高),

    因为库文件的问题报错基本很相似所以非常考验阅读代码的能力,

    在Django中可以锻炼我们很多东西,阅读源文件能力,逻辑能力 ,Debug能力,以及项目维护能力。

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    Django 默认的是SQLite3数据库这个数据库最好只用于小量的上线前单元测试的测试 :

    因为,SQLite3在于python的沟通很方便也很快捷,所以在测试上很方便,但是最好不要进行高并发等的测试也不要进行大数据的测试,

    如果要进行大量的测试最好用Mysql等关系型数据库,因为关系映射的原因所以关系型数据库也用的最多。

    下面进行库文件的介绍。

    Django库文件的创建方法,

      1.在django终端进行插入:

        数据库表创建完成之后,在pycharm的terminal中输入python manage.py shell 然后就会进入InteractiveConsole,之后可以在下面输入命令,在数据库表中添加数据。

      2.在views.py中创建:

        views.py完成url与模板的交互,在views中可以接受前端的数据,然后在views中通过命令进行添加到数据库表中,基本命令都一样。

      3.在可视化工具中进行直接添加:

        django默认采用的是sqlite3数据库,可以使用SQLiteStudio打开数据库表进行直接添加。

      4.在工程中再创建一个脚本,运行脚本进行添加(用以批量添加),类似方法和在views中添加是一样的。

        get_or_create()方法可以避免在批量添加时,出现数据的重复添加创建。

    Django引入现有数据库:

    Django引入外部数据库还是比较方便的,步骤如下:

    1.创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致。

    2.运行下面代码可以自动生成models模型文件
    python manage.py inspectdb
    这样就可以在命令行看到数据库的模型文件了

    3.把模型文件导入到app中

    4.创建一个app
    django-admin.py startapp app
    python manage.py inspectdb > app/models.py

    python manage.py migrate

  • 相关阅读:
    New Concept English three (33)
    New Concept English three (32)
    New Concept English three (31)
    2017.11.03 正确查找datasheet+ 英语邮件+英语会议
    New Concept English three (30)
    PyQt(Python+Qt)学习随笔:Qt Designer中窗口对象的windowFilePath属性
    PyQt(Python+Qt)学习随笔:Qt Designer中部件的locale属性
    PyQt(Python+Qt)学习随笔:Qt Designer中部件的autoFillBackground属性
    PyQt(Python+Qt)学习随笔:Qt Designer中部件的样式表styleSheet属性
    PyQt(Python+Qt)学习随笔:Qt Designer中部件的layoutDirection属性
  • 原文地址:https://www.cnblogs.com/yongqi-wang/p/ff.html
Copyright © 2011-2022 走看看