我試圖構建一個支持使用Django許多一對多的關係數據庫和現有的MySQL數據庫,通過去之後的下一步驟Django「投票」教程。
我正在運行一個包含Python 3.4,Django 1.9.2,mysql-connector-python 2.1.3的虛擬環境。
我連接到通過「引擎」上MAMP運行MySQL數據庫:「mysql.connector.django」項目settings.py
在我的項目的設置應該是正確的,因爲我沒有問題,使用inspect db從現有的MySQL數據庫中提取模型。
問題:
看在和編輯模式後inspectdb創建的,我想將它們遷移到數據庫。我將模型複製到應用程序的models.py並運行migrate命令。不幸的是,它現在拋出錯誤,並且對django很陌生,我不太確定問題出在哪裏。我看到:
(開始錯誤節選)
Operations to perform:
Apply all migrations: admin, sessions, auth, contenttypes
Running migrations:
Rendering model states... DONE
Applying contenttypes.0001_initial...Traceback (most recent call last):
File "/path/to/virtualenv/lib/python3.4/site-packages/mysql/connector/django/base.py", line 177, in _execute_wrapper
return method(query, args)
File "/path/to/virtualenv/lib/python3.4/site-packages/mysql/connector/cursor.py", line 515, in execute
self._handle_result(self._connection.cmd_query(stmt))
File "/path/to/virtualenv/lib/python3.4/site-packages/mysql/connector/cursor.py", line 434, in _handle_result
self._handle_noresultset(result)
File "/path/to/virtualenv/lib/python3.4/site-packages/mysql/connector/cursor.py", line 404, in _handle_noresultset
self._warnings[0][1], self._warnings[0][2])
mysql.connector.errors.DatabaseError: 1264: Out of range value for column 'applied' at row 1
During handling of the above exception, another exception occurred:
(完錯誤節選)
什麼,我認爲正在發生的
讀取錯誤信息,我期待在一個作爲罪魁禍首的兩件事:內容類型或mysql連接器設置('ENGINE':'mysql.connector.django')。
我發現了ContentTypes模型的django文檔,但頁面上的內容似乎無法幫助診斷我的問題。
我很好奇它是否是連接器,如果是這樣,爲什麼inspectdb在提取模型時沒有問題。
任何人都可以給我一些見解發生了什麼?
謝謝!
它是一個全新的應用程序或從早期版本的Django(如1.8)升級? – Selcuk
好問題。我想說一個新的Django安裝,但我可能在某個時候玩過不同的版本。我試着開始一個新的venv,仍然得到相同的錯誤。 – jsamsf
如果您使用Django 1.8或更早版本創建項目,然後將其複製到1.9環境中,則可能會發生遷移錯誤。 – Selcuk