您好,登錄后才能下訂單哦!
Django是一個MVC架構的web框架,其中,數據庫就是“Module”。使用這種框架,我們不必寫一條SQL語句,就可以完成對數據庫的所有操作。在之前的Django版本中,我們像操作本地對象那樣操作數據對象,在更改保存之后,執行python
manage.py syncdb命令來同步數據庫,在我使用的1.9.2版本中,需要依次執行一下步驟:
我遇到的問題是,執行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也只會全部執行。那么我們只好把數據庫恢復到出錯的那次執行前面的樣子。
恢復方法:在project/app/migrations下有每次對數據操作所生成的腳本。找到出錯那次腳本,打開腳本,可讀性還是很高的,將所對應的數據庫更改還原(當然得使用mysql語句了)。
然后刪掉這次migration,重新make 然后執行。
實在不行,還有一個萬不得已的辦法。幾乎所有的數據庫錯誤都可以用這個方法解決:
將migrations文件夾下的文件除了__init__.py全部刪掉,然后將數據庫drop掉,重新建數據庫。然后make,migrate,就可以使用一個新的數據庫(但愿你永遠用不到這個方法)。
以上就是本文關于django數據庫migrate失敗的解決方法解析的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。