2016-04-24 20 views
0

我正在尝试dumpdata从一个传统的数据库我最近做了一个反向工程使用Django的inspectdb ... 除此之外,每个查询工作正常。在MySQL工作台中存在该列。 但试图导出数据时,我得到:Django dumpdata无法序列化现有的列

CommandError: Unable to serialize database: no such column: af_datper.locnac 

使用traceback不透露我的任何行影响(粘贴在这里不污染http://dpaste.com/1DASN1V)。

模型领域已经承认空值的列与列不存在于数据库中(与工作台看到它之中,inspectdb不会把它捡起来......

老实说,我不?知道我还能怎么做任何考生

回答

0

挖掘到您的回溯的位,我看到:

文件“VENV/lib目录/ python3.5 /站点包/ Django的/ DB /后端/utils.py“, 第64行,执行 返回self.cursor.execute(sql,params)文件“venv/lib/python3.5/site-packages/django/db/backends/sqlite3/base.py”, line 323,执行 return Database.Cursor。执行(自我,查询,则params) sqlite3.OperationalError:没有这样的列:af_datper.locnac

从SQLite的documentation

如果指定了架构名称,它必须是“主”,“临时”或附加数据库的名称。在这种情况下,新表格是在指定数据库中创建的 。如果在“CREATE”和“TABLE”之间出现“TEMP”或“TEMPORARY”关键字 ,则在临时数据库中创建新表 。指定模式名称和TEMP或TEMPORARY关键字都是错误的,除非模式名称是“temp”。如果未指定 模式名称并且TEMP关键字不存在,则将在主数据库中创建 表。

总之,SQLite不支持的foo.bar作为列名,除非foo是数据库的名称或maintemp之一。

+0

我使用的是这个应用程序的mysql ... – tutuca

+0

不是根据你的追踪,这是在sqlite3的连接器抛出的错误。 –

+0

好的,这是一个提示。我正在使用自定义路由器,并且此应用程序正在与mysql交谈,而auth在sqlite上...我将删除它并在mysql上迁移... – tutuca