修复 Django migration 时遇到的问题解决

今天想给自己的 Blog 加点功能,顺便补上测试,然而第一步在创建测试数据库就过不了,我就尝试解决这个问题。

在跑 ./manage.py test 时,先会创建一个测试用的数据库,这时我遇到了一个问题:

ValueError: Related model 'telegrambot.User' cannot be resolved

这个错误是指,相关的 Model telegrambot.User 无法解析,这是怎么回事?

然后因为 ./manage.py test 根本没有打印出其他有用的信息,我也不知道是发生在哪里的错误,这时我想到了一个办法,就是尝试手动建立一个数据库,叫 test,然后进行 migration:

./manage.py migrate --database test

一跑,终于有详细的输出,定位到了具体出错的那个 Migration。原来是我的一个 App 的 Model 依赖了 telegrambot.User,但是找不到。这是什么原因?

我尝试在 settings.py 的 INSTALLED_APPS 把 telegrambot 的顺序调到前面来,也没有用。于是只好启用 StackoverFlow。

原来是我的那个 App 的 Migration 的 dependencies 没有依赖 telegrambot,于是自然不会去找了。

于是把原来的,加了一行 dependency,再尝试 ./manage.py test,问题解决。

class Migration(migrations.Migration):

  dependencies = [
+    ('telegrambot', '0001_initial'),
    ('powernews', '0004_applenews'),
  ]

总结:有些命令行工具执行出错时,不会有太多有用的输出信息,这时就可以尝试手动去执行一些操作。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 解决Django数据库makemigrations有变化但是migrate时未变动问题

    写models.py时缺少了一个 verbose_name,导致数据库出现问题,整了很久,摸索出重新建立数据库的方法: 首先删除每个app中的migrations中的除了init.py的文件,在数据库中清空所有的表,然后执行migrate,这时会自动生成系统默认的那些表,然后执行makemigrations,再执行migrate 如果只是众多应用中的一个出了问题的话,删除与之相关的表,然后进入django_migrations表中,将相应的app那项记录删除,然后再执行 makemigratio

  • 修复 Django migration 时遇到的问题解决

    今天想给自己的 Blog 加点功能,顺便补上测试,然而第一步在创建测试数据库就过不了,我就尝试解决这个问题. 在跑 ./manage.py test 时,先会创建一个测试用的数据库,这时我遇到了一个问题: ValueError: Related model 'telegrambot.User' cannot be resolved 这个错误是指,相关的 Model telegrambot.User 无法解析,这是怎么回事? 然后因为 ./manage.py test 根本没有打印出其他有用的信息

  • 关于Python 多重继承时metaclass conflict问题解决与原理探究

    目录 背景 什么是metaclass(元类) 类比普通class与metaclass 自定义与使用metaclass metaclass confict(元类冲突)的清晰含义 解决方案 参考 背景 最近有一个需求需要自定义一个多继承abc.ABC与django.contrib.admin.ModelAdmin两个父类的抽象子类,方便不同模块复用大部分代码,同时强制必须实现所有抽象方法,没想按想当然的写法实现多继承时,居然报错metaclass conflict: In [1]: import a

  • 利用ASP.NET MVC+Bootstrap搭建个人博客之修复UEditor编辑时Bug(四)

    我的个人博客站在使用百度富文本编辑器UEditor修改文章时,遇到了一些问题,(不知是bug,还是我没有配置好).但总算找到了解决方法,在此记录下来. 小站首页文章列表显示为(显示去除HTML标签后的前600个字符): 具体在www.zynblog.com 遇到的问题: 正常来讲,进入文章修改页,只需将UEditor对应的textarea的value设置为文章Content就行了: $('#editor').val('@Html.Raw(this.Model.Contents)'); 最开始我就

  • JQuery发送ajax请求时中文乱码问题解决

    这篇文章主要介绍了JQuery发送ajax请求时中文乱码问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 先排除项目故障: 1.web.xml中是否配置了字符拦截器 <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter

  • 基于pip install django失败时的解决方法

    使用pip安装Django时报错,先是: C:\Users\admin>pip install django Collecting django Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.python.org', port=443): Read ti

  • json_decode 索引为数字时自动排序问题解决方法

    json_encode 索引为数字,自动排序问题 使用son_encode 给前端返回数据,结果顺序不对,经debug调试,发现是json_encode 函数的问题: { "code": 0, "msg": "请求成功!", "data": { "2018-10": { "17": [ { "id": 730, "uid": "11820

  • django序列化时使用外键的真实值操作

    展示: 一般情况下序列化得到的外键的内容只是id: ... { fields: { uat_date: "2015-07-25", statu: "CG", name: "慢赢优化", tester: [ 1 ], product_manager: 1, module: [ 2, 3 ], project: 1, plan_version: 1, publish_date: "2015-07-25", actual_versi

  • 详解重置Django migration的常见方式

    根据django官方文档建议,开发过程中会把生成的migrations提交到git中.由于各种原因,会有一些场景需要重置migrations,故总结一些常用场景及解决办法. 场景一 不考虑数据库数据,可以完全清空数据库. 步骤: 删除所有migrations find . -path "*/migrations/*.py" -not -name "__init__.py" -delete find . -path "*/migrations/*.pyc&q

  • Django启动时找不到mysqlclient问题解决方案

    在使用Django2.0 并配置了mysql作为数据库时,启动报错: 报错1:找不到mysqlclient django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module. Did you install mysqlclient? 解决方法 项目(settings.py同级)目录中__init__.py中添加 import pymysql pymysql.install_as_MySQLdb() 报错2:版本检查

  • SQLite字符串比较时的大小写问题解决方法

    大部分数据库在进行字符串比较的时候,对大小写是不敏感的.但是,最近使用SQLite的时候,却发现它的情况恰好相反. 假设表User的结构和值如下:   UserName 1 User1 执行下面的SQL语句: 复制代码 代码如下: SELECT * FROM [User] WHERE UserName = 'user1' 结果是没有找到任何记录.明显地,SQLite在进行字符串比较的时候,默认对大小写是敏感的.这会对应用程序造成不良的影响.比如,用户在输入用户名的时候必须严格按照大小写输入,这是

随机推荐