激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - django數據庫migrate失敗的解決方法解析

django數據庫migrate失敗的解決方法解析

2021-01-13 00:48countofdane Python

這篇文章主要介紹了django數據庫migrate失敗的解決方法解析,分享了相關代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下

Django是一個MVC架構的web框架,其中,數據庫就是“Module”。使用這種框架,我們不必寫一條SQL語句,就可以完成對數據庫的所有操作。在之前的Django版本中,我們像操作本地對象那樣操作數據對象,在更改保存之后,執行python
manage.py syncdb命令來同步數據庫,在我使用的1.9.2版本中,需要依次執行一下步驟:

  • python manage.py makemigrations (這個命令會根據你對數據庫做出的更改生成操作數據庫的python腳本)
  • python manage.py migrate (這個命令會執行python腳本)

我遇到的問題是,執行makemigrations沒有問題,但是執行migrate的時候有問題。于是我修改了modules.py中錯誤的代碼,再次執行,卻一直出問題。提示如下:

?
1
2
3
4
django.db.utils.OperationalError:
(1060,
"Duplicate
 column name 'to_user_id'")

我刪掉了makemigrations生成的代碼,然后重新使用makemigrations生成腳本,還是出錯。

原來,這是由于出錯的時候,migrate命令已經執行了部分腳本,也就是說,to_user_id屬性已經被操作過了,在數據庫中,已經無需再操作了,所以執行migrate命令重新更新makemigrations的腳本會出錯。

解決辦法

重新生成makemigrations不行,執行migrate也只會全部執行。那么我們只好把數據庫恢復到出錯的那次執行前面的樣子。

django數據庫migrate失敗的解決方法解析

恢復方法:在project/app/migrations下有每次對數據操作所生成的腳本。找到出錯那次腳本,打開腳本,可讀性還是很高的,將所對應的數據庫更改還原(當然得使用mysql語句了)。

然后刪掉這次migration,重新make 然后執行。

實在不行,還有一個萬不得已的辦法。幾乎所有的數據庫錯誤都可以用這個方法解決:

將migrations文件夾下的文件除了__init__.py全部刪掉,然后將數據庫drop掉,重新建數據庫。然后make,migrate,就可以使用一個新的數據庫(但愿你永遠用不到這個方法)。

總結

以上就是本文關于django數據庫migrate失敗的解決方法解析的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

原文鏈接:http://blog.csdn.net/countofdane/article/details/79202298

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久精品中文字幕 | 欧美videofree性欧美另类 | 羞羞答答www网站进入 | 欧美成人影院 | 成人毛片在线免费观看 | 九九精品视频观看 | 午夜色片 | 久久久久成人免费 | 免费视频www在线观看 | 天天干天天透 | av中文一区| 成人精品视频在线 | 看免费的毛片 | 99精品国产视频 | av日韩一区二区 | 自偷自偷久产久精九国品在线 | 成人免费毛片在线观看 | chinesehdxxxx无套 2021国产精品 | av一二三四区 | 圆产精品久久久久久久久久久 | www.91操 | 91社区在线观看 | 91成人亚洲| 精品午夜久久 | 中国成人在线视频 | 一级毛片免费观看在线 | 久久久久久久91 | 娇喘视频在线观看 | 日本欧美一区二区三区在线播 | 亚洲成年人免费网站 | 久久久国产精品免费观看 | 国产精品国产三级国产aⅴ无密码 | 日韩在线观看视频一区 | 91精品国产乱码久久久久 | 中文字幕一区二区三区久久 | 91专区在线观看 | 国产大片中文字幕在线观看 | 国产宾馆3p国语对白 | 亚洲艳情网站 | 国产99免费 | 久久久日韩av免费观看下载 |