我将发布一个问题,然后发布问题的解决方案,我在被卡住一段时间后找到了解决方案,所以我认为它可能对其他使用命令 inspectdb 生成模型的人有值(value)来自 MySQL 数据库的 Django,使用适用于 Python 3.3 的 MySQL 连接器
命令:
C:\myproj\myproj> manage.py inspectdb --database=mydb > models.py
结果错误(为简洁起见省略回溯):
django.db.utils.IntegrityError: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''decimal' at line 1
最佳答案
所以解决方案很快,请注意,感谢 Marcin Miklaszewski 在此处发布了错误和相关解决方案:http://bugs.mysql.com/bug.php?id=72478 但是我认为在 StackOverflow 上找到这里会更容易。
文件第65行有错误(假设你已经在C:\Python33中安装了python):
C:\Python33\lib\site-packages\mysql\connector\django\introspection.py
替换第 65 行:
"table_schema = DATABASE() AND data_type='decimal", [table_name])"
与:
"table_schema = DATABASE() AND data_type='decimal'", [table_name])"
(请注意第一个版本中 decimal
之后缺少的撇号)。
现在您的 inspectdb 命令将正确运行。
关于python - 使用 MySQL Connector 和 Python 3 在 Django 中运行 inspectdb 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24979139/