๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

[PostgreSQL ERROR] psycopg2.errors.UniqueViolation: duplicate key value violates unique constraint "0000_key"DETAIL: Key (0000)=() already exists.

by sgaeng 2023. 4. 19.

my github issue link: https://github.com/Gaebal-Zarang/gbzr-backend/issues/4

์—๋Ÿฌ๋ฉ”์‹œ์ง€

psycopg2.errors.UniqueViolation: duplicate key value violates unique constraint "users_user_nickname_key"
DETAIL:  Key (nickname)=() already exists.

- ์ฐธ๊ณ ํ•œ ๋ฐฉ๋ฒ•

: https://snepbnt.tistory.com/252

https://www.xmisao.com/2014/06/07/duplicate-key-value-violates-unique-constant-primary-key-on-postgresql.html

 

 

- ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
  1.  DETAIL:  Key (nickname)=() already exists. ์ธ ๊ฒฝ์šฐ: `auths app > serializers.py` ์˜ `class Serializer(ModelSerializer)`์—์„œ `exclude="nickname"`์„ ์ถ”๊ฐ€ํ•จ


  2. `DETAIL:  Key (username)=() already exists.` ์ธ ๊ฒฝ์šฐ: ์œ„์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ํ–ˆ์ง€๋งŒ ๊ณ„์† ์—๋Ÿฌ ๋ฐœ์ƒ

 

์ฐ ์›์ธ์€ ๋ฐ”๋กœ,,!
- ๋‚˜์˜ User model์€ AbstractUser๋ฅผ ์ƒ์†๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— (๋‚ด๊ฐ€ ๋งŒ๋“ ) name ์†์„ฑ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ username ์†์„ฑ(unique=True)์ด ์ž๋™์œผ๋กœ ์ œ๊ณต๋˜์–ด ์žˆ์Œ์ด ์žˆ์Œ
- superuser ๋งŒ๋“ค ๋•Œ๋Š” ์ž๋™์œผ๋กœ username, email, password๋ฅผ ์ž…๋ ฅํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ๋‚ด๊ฐ€ ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ•œ api์—์„œ๋Š” name(not username), email, password๋ฅผ ์ด์šฉํ•ด์„œ user๋ฅผ ์ƒ์„ฑํ•จ
- superuser๋ง๊ณ , ์ผ๋ฐ˜ ์œ ์ €๋Š” 1๊ฐœ๋งŒ ๋งŒ๋“ค์–ด์ง€๊ณ  2๋ฒˆ์งธ๋ถ€ํ„ฐ ์œ„์™€ ๊ฐ™์€ ์—๋Ÿฌ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋œ ๊ฒƒ์ž„
- ์ฒซ๋ฒˆ์งธ ์ผ๋ฐ˜ ์œ ์ €๋ฅผ ๋งŒ๋“ค ๋•Œ, (์ˆจ๊ฒจ์ ธ์žˆ๋Š”) username ์†์„ฑ์ด null๋กœ ๋งŒ๋“ค์–ด์ง€๊ณ , ๊ทธ ์ดํ›„์˜ 2๋ฒˆ์งธ ์œ ์ €๋ถ€ํ„ฐ๋Š” username์ด uniqueํ•˜๋‹ค๋ณด๋‹ˆ '์ด๋ฏธ ์กด์žฌํ•ด์„œ' ๋งŒ๋“ค์–ด์ง€์ง€ ์•Š๊ฒŒ ๋œ ๊ฒƒ์ž„
- (๊ฒฐ๋ก ) ๊ทธ๋ž˜์„œ User model์˜ name์†์„ฑ์„ ์—†์• ๊ณ  username์†์„ฑ์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ•จ!

์ด๋ฒˆ ์—๋Ÿฌ๋ฅผ ํ†ตํ•ด ๋ฐฐ์šด ๊ฒƒ! ์ƒ์†๋ฐ›์„ ๋•Œ, ์–ด๋–ค ๊ฒƒ๋“ค์„ ์ œ๊ณตํ•˜๋Š”์ง€(username์ด uniqueํ•˜๋‹ค๋Š” ๊ฒƒ๋„) ๋” ์ž์„ธํžˆ ์•Œ์•„์•ผ๊ฒ ๋‹ค!