2009-05-28 13 views

答えて

4

、ビルトインDecimalFieldはDjangoのは、上記のカスタムBigintFieldのアプローチよりも優れて動作する可能性があります。カスタムフィールドの種類についてSouthを教えるために少し余分な作業が必要なように見えます。

+0

psycopg2.ProgrammingError:構文エラー "または"( " LINE 2:" id "BIGINT(20)NOT NULLプライマリキーではない) ^ –

+0

BIGINT(20)をbigintこれはポストグラム特有の問題です。あなたの答えを変えることができれば、あなたの答えはかなり良いと思うのですばらしいでしょう。 –

1

Django ticket #399これを処理します。私はまたかなり前にsimilar questionを開いた。

過去に私が使用していた回避策は、BIGINT(たとえば、MySQLの場合)のDBテーブルに問題のフィールドALTERを直接入力することです。ただし、特定のフィールドを持つ特定のモデルが存在するアプリケーションをリセットするか、テーブルを削除して何らかの方法で再作成すると、フィールドが再びALTERになることに注意してください。あなたがフィールドまたはIntegerFieldと南のユーザーの場合

class BigintField(models.Field): 
    def db_type(self): 
     return 'BIGINT(20)' 
... 

class MyModel(models.Model): 
    bigid = BigintField() 
+0

こんにちは、これは私がやったことですが、どういうわけか、これは正しい解決策ではないと感じています。 – Rasiel

0

からinhritedカスタムフィールドを作成する必要があり

2

最新のDjangoバージョンでは、models.BigIntegerFieldを使用してください。より大きな値をサポートしています。

関連する問題