Python Django can';t正确地销毁和创建测试数据库
当我尝试运行unittest时,我得到的是:Python Django can';t正确地销毁和创建测试数据库,python,mysql,django,django-unittest,Python,Mysql,Django,Django Unittest,当我尝试运行unittest时,我得到的是: python manage.py test dbank --settings=databank_web.settings.dqs.dev_hooman Creating test database for alias 'default'... Creating test database for alias 'global'... Creating test database for alias 'optin_db'... Creating test
python manage.py test dbank --settings=databank_web.settings.dqs.dev_hooman
Creating test database for alias 'default'...
Creating test database for alias 'global'...
Creating test database for alias 'optin_db'...
Creating test database for alias 'vpd3'...
Creating test database for alias 'user_db'...
Creating test database for alias 'vpd1'...
Creating test database for alias 'vpd2'...
.
----------------------------------------------------------------------
Ran 1 test in 0.327s
OK
Destroying test database for alias 'default'...
Warning: Table 'mysql.proc' doesn't exist
它无法破坏数据库。当我重新运行测试时,它会变得更好:
python manage.py test dbank --settings=databank_web.settings.dqs.dev_hooman
Creating test database for alias 'default'...
Creating test database for alias 'global'...
Got an error creating the test database: (1007, "Can't create database 'test_dqs12_full2'; database exists")
Type 'yes' if you would like to try deleting the test database 'test_dqs12_full2', or 'no' to cancel: yes
Destroying old test database 'global'...
Got an error recreating the test database: Table 'mysql.proc' doesn't exist
知道为什么会出问题吗
运行最新的自制+mysql-5.6.21+Django 1.5.5那么,有两个错误表明缺少
mysql.proc
表。您可能可以运行mysql\u update
生成它,我终于找到了原因
我们的应用程序有大约7个数据库。当我准备手动删除它们以获得干净状态时,我意外地还删除了mysql
数据库。此数据库不应被删除,因为它包含有关根用户的重要信息
当我意识到这一点时,我试图通过brew重新安装MySQL来缓解这种情况
brew uninstall mysql
brew install mysql
当我运行show databases时,mysql
数据库再次出现代码>,但问题仍然存在。那就是我来这里寻求帮助的时候
看起来事情比brew要复杂一些。
我就是这样让它重新工作的:
1) brew uninstall mysql
2) sudo rm -r /usr/local/var/mysql/
3) brew install mysql
4) unset TMPDIR
5) mysql_install_db --verbose --user='whoami' --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
6) mysql.server restart
7) mysql_secure_installation
现在它起作用了。希望这能帮助其他mac用户。谢谢。在
已安装的应用程序中,你有南方
吗?是的,我有南方
在已安装的应用程序中
更改/设置为False
有帮助吗?我没有否决你的答案。我也不确定你运行mysql\u update
是什么意思。谢谢