2017-07-16 26 views
0

我想包括JSONField在我的模型:django.db.utils.ProgrammingError:不能投類型的文本[]到jsonb

from django.contrib.postgres.fields import JSONField 
class Trigger(models.Model): 
    solutions = JSONField(blank=True, null=True) 

然而,當我嘗試遷移數據庫,它提供了以下錯誤:

django.db.utils.ProgrammingError: cannot cast type text[] to jsonb 
LINE 1: ...ALTER COLUMN "solutions" TYPE jsonb USING "solutions"::jsonb 

這裏可以做些什麼?

回答

0

首先安裝Django-jsonfield與

pip install jsonfield 

,然後更換

from django.contrib.postgres.fields import JSONField 

from jsonfield import JSONField 

要導入不延長django.models領域,因此JSONField在這裏不能使用。

0

錯誤表明您正在嘗試alter column and not add a new之一。此列solutions似乎被聲明爲之前包含數據的Textfield(或Charfield),您試圖將其轉換爲JSON字段。這就是你得到這個錯誤的原因。

更好地創建一個新字段,而不是將文本字段更改爲JSON字段,並刪除以前的字段(如果不需要)。

from django.contrib.postgres.fields import JSONField 

class Trigger(models.Model): 
    new_solutions = JSONField(blank=True, null=True) 
相關問題