我加載使用manage.py loaddata從源碼生成到PostgreSQL數據庫的夾具加載一張長條桌的名字時,是不是一個序列。當它到達具有長名稱的ManyToManyField時加載失敗。Django的loaddata造成ProgrammingError:「......」在PostgreSQL中
我追查到數據庫適配器:usr/local/lib/python2.6/dist-packages/django/db/backends/postgresql_psycopg2/base.py
線44
return self.cursor.execute(query, args)
的query
值是正確的:'SELECT CURRVAL(\'"a_long_long_table_name_id_seq"\')'
但隨後失敗,DatabaseError: 「a_long_long_table_name_i」 不是一個序列
顯然這個名字在執行這個語句後被切斷了,但是我不能追蹤到更深。
django版本:1.2
如何解決這個問題?
Postgres中列名的最大長度是64 - 你的兩個例子都比這少得多。錯誤消息本身可能只是簡單地截斷列名。當您手動運行查詢時會發生什麼? – Seth 2011-01-11 20:47:49