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分叉)应该做的伎俩。