django生成數(shù)據(jù)表結(jié)構(gòu)的過程
在我們設(shè)計好models以后键科,我們可以通過以下命令生成將要同步給數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)文件
python manage.py makemigrations
生成的文件在app目錄下的migrations文件夾內(nèi)以000*開頭的文件。
每運行一次makemigrations,django就會根據(jù)models的變更在migrations文件夾內(nèi)生成一個新文件趁窃。
然后我們運行python manage.py migrate,django就會根據(jù)migrations文件夾內(nèi)生成一個文件,將數(shù)據(jù)結(jié)構(gòu)寫入數(shù)據(jù)庫膛虫。
那么是不是每一次都重復執(zhí)行所有的migrations內(nèi)的文件呢?當然不是钓猬,每次執(zhí)行migrate的時候稍刀,django會在django_migrations數(shù)據(jù)表內(nèi)記錄已經(jīng)執(zhí)行了的migrations文件。去數(shù)據(jù)庫里查詢該表就能看到對應APP里執(zhí)行了的migrations敞曹。
刪除models.py
無論是刪除單獨的model還是刪除整個app账月,都需要首先刪除models.py中的模型
- 確認沒有其他文件引用models.py中的類。
- 遷移或者刪除你的數(shù)據(jù)庫澳迫,Django提供了簡便的方法方便用戶刪除某App下的所有數(shù)據(jù)
python manage.py migrate appName zero
- 刪除models.py中的數(shù)據(jù)模型
刪除app
- 刪除整個app文件夾
- 在settings.py中的Installed apps中刪除該app
- urls.py中刪除相關(guān)路由信息