中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-09-02 11:58:49 來源:腳本之家 閱讀:237 作者:countofdane 欄目:開發技術

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中錯誤的代碼,再次執行,卻一直出問題。提示如下:

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失敗的解決方法解析的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

博野县| 通渭县| 永定县| 大英县| 南安市| 阜新市| 石渠县| 綦江县| 宣城市| 鄯善县| 博白县| 肇州县| 湘阴县| 裕民县| 大田县| 兴文县| 西藏| 通化市| 盐边县| 融水| 和硕县| 凤城市| 徐州市| 广饶县| 南安市| 东台市| 溧阳市| 鄂托克旗| 梧州市| 安阳市| 治县。| 图们市| 昭通市| 西华县| 瑞昌市| 滦南县| 沾益县| 滨海县| 陆良县| 鄂尔多斯市| 台北县|