2014-10-20 44 views
3

當我試圖運行單元測試我,這就是我得到:的Django不能破壞和創建測試數據庫正常

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

+0

你在'INSTALLED_APPS'中有'south'嗎? – alecxe 2014-10-20 17:27:45

+0

是的,我在'INSTALLED_APPS'裏有'south'' – Houman 2014-10-20 17:28:38

+0

是否改變/設置['SOUTH_TESTS_MIGRATE'](http://south.readthedocs.org/en/latest/settings.html#south-tests- migrate)設置爲'虛假'的幫助? – alecxe 2014-10-20 17:29:53

回答

-1

那麼,有兩個錯誤,表明mysql.proc表丟失。您可能能夠生成它運行mysql_update

+0

我沒有downvote你的答案。我也不確定你的意思是運行'mysql_update'。謝謝 – Houman 2014-10-21 08:21:08

0

我終於找到原因了。

我們的應用程序有大約7個數據庫。當我正手動放下它們以獲得乾淨的狀態時,我不小心丟掉了mysql數據庫。這個數據庫不應該被刪除,因爲它包含有關根用戶的重要信息。

當我意識到這一點時,我試圖通過brew重新安裝MySQL來緩解。

brew uninstall mysql 
brew install mysql 

這個工作和mysql數據庫再次出現了,當我跑show databases;,但問題依然存在。那是當我來這裏尋求幫助的時候。

因爲事情似乎比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用戶。謝謝。

相關問題