2

背景:Django的錯誤現有的MySQL數據庫

我試圖構建一個支持使用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在提取模型時沒有問題。

任何人都可以給我一些見解發生了什麼?

謝謝!

+0

它是一個全新的應用程序或從早期版本的Django(如1.8)升級? – Selcuk

+0

好問題。我想說一個新的Django安裝,但我可能在某個時候玩過不同的版本。我試着開始一個新的venv,仍然得到相同的錯誤。 – jsamsf

+0

如果您使用Django 1.8或更早版本創建項目,然後將其複製到1.9環境中,則可能會發生遷移錯誤。 – Selcuk

回答

0

ATM 'mysql.connector.django' 似乎提供支持的Django多達版本< = 1.8

即使設置USE_TZ =真將導致怪異TypeErrors,如:

"TypeError: can't multiply sequence by non-int of type 'tuple'"

使用MySQLdbmysqlclient(這是一個MySQLdb分叉)應該做的伎倆。