django 刪除資料庫表後重新同步的方法

2022-10-04 10:18:09 字數 1176 閱讀 1145

由於專案需要,最近在用基於python語言的乙個後端框架django開發web應用。不得不說,djovcfjykdango繼承了pyt程式設計客棧hon的簡潔性,用它來開發web應用簡單清爽,不同於從前的ssh框架,需要單獨配置每個框架,還需要通過配置將各個框架集合起來,django就整合了ssh三個框架的功能,只需要配置好這乙個框架,整個後端開發流程全部可以完成,並且配置過程簡單易學,這就大大降低了程式設計師的使用複雜度,可以將更多的精力集中於寫出好的**,而不是糾結於工具的使用。

閒言少敘,現在就來說一說我遇到的問題和解決方案。

我們都知道django提供了orm的功能,可以通過操作**中的類直接建立資料庫表以及進行增刪改查。但是在開發過程中,由於資料庫表的重新設計,需要刪除原表,並通過django的orm功能重新同步表。

同步命令如下:

python manage.py makemigrations

python manage.py migrate

但是在我輸入命令之後報錯了:

提示說我新增的字段沒有預設值(我對資料庫表的修改就是增加了乙個字段),然後我去百度,在stackoverflow上找到了答案,在該字段後增加乙個預設值即可。但是明顯這個答案沒有找到我遇到問題的真正原因,因為這樣做第一條命令成功執行,但是到第二條時www.cppcns.com就直接ovcfjykd報錯。

然後我又去百度,有人建議看一下框架自動生成的initial檔案,該檔案在當前app下的migrations目錄下,開啟後發現該檔案內容和原表對應,也就是並沒有更新,問題可能就在這了。於是我按照建議刪除了這個檔案重新生成。

刪除檔案之後重新執行命令,這次確實生成了新的initial檔案,內容也已經更新,但是執行第二條命令時還是出了問題,檢視資料庫,空空如也,沒有產生新錶。崩潰。

然後又去百度,找相關問題看,看到另外一條命令:

python manage.py sqlmigrate your_app_name 0001

把your_app_name換成自己的app名字即可看到框架自動生成的建立表sql語句,於是我就這樣看到了sql語句。我直接在資料庫中執行了該句sql命令手動建立了表,再啟動應用,可以正常啟動,問題解決。

雖然這個方法有些取巧吧,似乎還是沒有解釋問題的癥結所在,但好在很實用地解決了問題。

本文標題: django 刪除資料庫表後重新同步的方法

本文位址: /jiaoben/python/229046.html

django 手動刪除資料庫

2018年01月09日 21 44 17 為了解決群友的問題,我親自刪了下我自己資料庫的乙個表,然後敲了一系列的dos命令,發現都不夠完美,最終我發現了在資料庫裡有乙個記錄生成 的記錄也就是我們的django makemigrations這個表,我們只需要刪除之前你建立 對應的那條記錄,見下圖。然後...

Django 刪除資料庫 fake問題

當models資料庫表結構建立好後同步資料庫,會將表同步到資料庫 python manage.py makemigrations python manage.py migrate 此時資料庫已經同步建立表成功 當這個時候發現資料庫中有乙個建立錯誤,當我們手動去刪除資料庫中的表之後,再將models中...

資料庫表的刪除資料

select from class insert into class classname,classdesc select ssss sfsdfds1 union select ssss sfsdfds2 union select ssss sfsdfds3 union select ssss s...