2016-04-24 51 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