django 刪除數(shù)據(jù)庫表后重新同步的方法
由于項(xiàng)目需要,最近在用基于Python語言的一個(gè)后端框架Django開發(fā)web應(yīng)用。不得不說,Django繼承了Python的簡潔性,用它來開發(fā)web應(yīng)用簡單清爽,不同于從前的SSH框架,需要單獨(dú)配置每個(gè)框架,還需要通過配置將各個(gè)框架集合起來,Django就集成了SSH三個(gè)框架的功能,只需要配置好這一個(gè)框架,整個(gè)后端開發(fā)流程全部可以完成,并且配置過程簡單易學(xué),這就大大降低了程序員的使用復(fù)雜度,可以將更多的精力集中于寫出好的代碼,而不是糾結(jié)于工具的使用。
閑言少敘,現(xiàn)在就來說一說我遇到的問題和解決方案。
我們都知道Django提供了ORM的功能,可以通過操作代碼中的類直接創(chuàng)建數(shù)據(jù)庫表以及進(jìn)行增刪改查。但是在開發(fā)過程中,由于數(shù)據(jù)庫表的重新設(shè)計(jì),需要刪除原表,并通過Django的ORM功能重新同步表。
同步命令如下:
python manage.py makemigrations
python manage.py migrate
但是在我輸入命令之后報(bào)錯(cuò)了:

提示說我新增的字段沒有默認(rèn)值(我對數(shù)據(jù)庫表的修改就是增加了一個(gè)字段),然后我去百度,在stackoverflow上找到了答案,在該字段后增加一個(gè)默認(rèn)值即可。但是明顯這個(gè)答案沒有找到我遇到問題的真正原因,因?yàn)檫@樣做第一條命令成功執(zhí)行,但是到第二條時(shí)就直接報(bào)錯(cuò)。
然后我又去百度,有人建議看一下框架自動生成的initial文件,該文件在當(dāng)前app下的migrations目錄下,打開后發(fā)現(xiàn)該文件內(nèi)容和原表對應(yīng),也就是并沒有更新,問題可能就在這了。于是我按照建議刪除了這個(gè)文件重新生成。
刪除文件之后重新執(zhí)行命令,這次確實(shí)生成了新的initial文件,內(nèi)容也已經(jīng)更新,但是執(zhí)行第二條命令時(shí)還是出了問題,查看數(shù)據(jù)庫,空空如也,沒有產(chǎn)生新表。崩潰。
然后又去百度,找相關(guān)問題看,看到另外一條命令:
python manage.py sqlmigrate your_app_name 0001
把your_app_name換成自己的app名字即可看到框架自動生成的創(chuàng)建表sql語句,于是我就這樣看到了sql語句。我直接在數(shù)據(jù)庫中執(zhí)行了該句sql命令手動創(chuàng)建了表,再啟動應(yīng)用,可以正常啟動,問題解決。
雖然這個(gè)方法有些取巧吧,似乎還是沒有解釋問題的癥結(jié)所在,但好在很實(shí)用地解決了問題。
以上這篇django 刪除數(shù)據(jù)庫表后重新同步的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python 創(chuàng)建守護(hù)進(jìn)程的示例
這篇文章主要介紹了Python 創(chuàng)建守護(hù)進(jìn)程的示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-09-09
爬蟲訓(xùn)練前端基礎(chǔ)Bootstrap5排版表格圖像
這篇文章主要為大家介紹了爬蟲訓(xùn)練前端基礎(chǔ)Bootstrap5排版表格圖像,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
用TensorFlow實(shí)現(xiàn)lasso回歸和嶺回歸算法的示例
本篇文章主要介紹了用TensorFlow實(shí)現(xiàn)lasso回歸和嶺回歸算法的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05
對pandas中時(shí)間窗函數(shù)rolling的使用詳解
今天小編就為大家分享一篇對pandas中時(shí)間窗函數(shù)rolling的使用詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11
Python虛擬環(huán)境venv配置文件pyvenv.cfg的實(shí)現(xiàn)
本文主要介紹了Python虛擬環(huán)境(venv)的配置文件pyvenv.cfg中的各個(gè)配置項(xiàng)及其含義,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02
在import scipy.misc 后找不到 imsave的解決方案
這篇文章主要介紹了在import scipy.misc 后找不到 imsave的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05

