Django 单元测试报错没有创建数据表
Posted ponponon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 单元测试报错没有创建数据表相关的知识,希望对你有一定的参考价值。
报错描述
报错如下
> python manage.py test tweets
..............
File "C:\\Users\\17293\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\django\\db\\backends\\utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "C:\\Users\\17293\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\django\\db\\utils.py", line 90, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "C:\\Users\\17293\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\django\\db\\backends\\utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "C:\\Users\\17293\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\django\\db\\backends\\mysql\\base.py", line 73, in execute
return self.cursor.execute(query, args)
File "C:\\Users\\17293\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\MySQLdb\\cursors.py", line 206, in execute
res = self._query(query)
File "C:\\Users\\17293\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\MySQLdb\\cursors.py", line 319, in _query
db.query(q)
File "C:\\Users\\17293\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\MySQLdb\\connections.py", line 259, in query
_mysql.connection.query(self, query)
django.db.utils.ProgrammingError: (1146, "Table \'test_d_twitter_db.tweets_tweet\' doesn\'t exist")
PS C:\\Users\\17293\\Desktop\\Coder\\Python\\Django\\twitter> python .\\manage.py makemigrations
数据表是单元测试自己创建的,是不是手动创建的
所以这个报错一开始让我摸不着头脑
解决方案
执行如下命令
python manage.py makemigrations
在执行单元测试的命令就好了
python manage.py test tweets
不需要执行
python manage.py migratie
以上是关于Django 单元测试报错没有创建数据表的主要内容,如果未能解决你的问题,请参考以下文章
从 1.8 升级到 2.2.4 后,Django 无法创建用于单元测试的表
Django:在运行单元测试之前创建测试表时“无法添加外键约束”