2010-03-04 17 views
3

我正在從使用SQLite3轉換到PostgreSQL,並希望我可以使用我一直用來填充SQLite3的燈具填充數據庫。但是,我得到這些錯誤:Django轉移到PostgreSQL無法導入燈具,陳述數據太長

$ python manage.py loaddata fixtures/core.json fixtures/auth.json 

Installing json fixture 'fixtures/core' from absolute path. 
Problem installing fixture 'fixtures/core.json': Traceback (most recent call last): 
    File "/home/mvid/webapps/nihl/nihlapp/django/core/management/commands/loaddata.py", line 153, in handle 
    obj.save() 
    File "/home/mvid/webapps/nihl/nihlapp/django/core/serializers/base.py", line 163, in save 
    models.Model.save_base(self.object, raw=True) 
    File "/home/mvid/webapps/nihl/nihlapp/django/db/models/base.py", line 495, in save_base 
    result = manager._insert(values, return_id=update_pk) 
    File "/home/mvid/webapps/nihl/nihlapp/django/db/models/manager.py", line 177, in _insert 
    return insert_query(self.model, values, **kwargs) 
    File "/home/mvid/webapps/nihl/nihlapp/django/db/models/query.py", line 1087, in insert_query 
    return query.execute_sql(return_id) 
    File "/home/mvid/webapps/nihl/nihlapp/django/db/models/sql/subqueries.py", line 320, in execute_sql 
    cursor = super(InsertQuery, self).execute_sql(None) 
    File "/home/mvid/webapps/nihl/nihlapp/django/db/models/sql/query.py", line 2369, in execute_sql 
    cursor.execute(sql, params) 
    File "/home/mvid/webapps/nihl/nihlapp/django/db/backends/util.py", line 19, in execute 
    return self.cursor.execute(sql, params) 
DataError: value too long for type character varying(30) 

我從來沒有使用過的任何數據長度錯誤,我沒有改變數據庫交換機之間的機型。 PostgreSQL正在運行utf8。有沒有辦法確切地看到哪些json值失敗,以便我可以更新相應的模型?任何想法,爲什麼值在SQLite中工作,但在PostgreSQL失敗?

回答

3

檢查Postgres日誌文件,它會記錄完整失敗的SQL語句,包括表名和違規字符串值。

+0

不幸的是,我的主機Webfaction不保留PostgreSQL日誌。 – 2010-03-04 06:04:28

0

檢查您試圖插入Postgres的內部fixtures/core.json中的SQLLite數據的長度。它看起來像數據超過30個字符。檢查您的django模型是否限制30個字符的屬性,然後檢查您的燈具是否有超過最大長度的數據。

1

要解決實際問題,改變你的聲明文本。這將允許您導入數據並清理它。然後你可以重新申請一個約束。

+0

或者只是放棄約束條件,這也可以實現。 – 2010-03-04 19:10:33

+0

varchar(30)不是可以刪除的約束。儘管他可以在他的聲明中更改數據類型。 – 2010-03-04 19:49:31