2017-01-26 11 views
0

最終的にBigAutoフィールドがBigAutoフィールドをPostgreSQLの "bigserial"タイプにマッピングできるようにしました。これは問題ありませんが、デフォルトで含まれているUserテーブルは引き続き使用します通常の32ビットの自動フィールドはPKです。Django BigAutoユーザー(Userテーブルの64ビットPKを取得する方法)

私は間違ってはいません...今は32ビット以上のユーザーを持つ予定はありませんが、実際には小さすぎるフィールドを選ぶことは嫌いです。そして、私の現在のケースでは、ある時点で32ビットを超えるユーザーがいると思うのは合理的です。

動機とは関係なく、私はまだdjangoに組み込まれているものを利用できるように、Userテーブルで64ビットのPKを取得するにはどうすればよいですか?

+0

32ビット整数は2147483647の最大サイズを持っています。あなたは本当に* 20億人以上のユーザーがいると言っていますか? –

答えて

1

AbstractBaseUser

class User(AbstractBaseUser): 
    id = models.BigAutoField() 

のサブクラスを作成し、あなたのsettings.pyに

AUTH_USER_MODEL = 'myapp.User' 
+0

私はこれに対して約24時間頭を叩いています。答えをありがとう、しかし私が今読んだところで、AbstractUserをサブクラス化するのは簡単ではないのですか?私はこれを試して、それが作成するpostgreSQLテーブルは、bigserialでプライマリキーとしてIDを使用するように見えます。 – zBeeble

+0

はいいいえAbstractUserを使用することができます – e4c5

+0

これは現在ソートされていますか? – e4c5

関連する問題