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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM