장고 Primary Key 오류 질문!
조회수 2463회
코드(models.py)
class UserProfile(models.Model):
user = models.OneToOneField(User)
schoolid = models.CharField(max_length=5,unique=True,null=False,db_index=True)
phone_number = models.CharField(max_length=11,unique=True,null=False,db_index=True)
def __str__(self):
return self.user.username
migrate 했을 때 오류내용입니다.
django.db.utils.OperationalError : table "mysite_userprofile" has more than one primary key
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
에러 로그를 읽어보면
현재
mysite_userprofile
에 하나 이상의primary key
가 존재한다는 문제로 보입니다.일단 이 문제는 models.py의 문제라기 보다는 database에 문제가 있는걸로 보이는데 아마 테스팅하는 과정에서 db수정 도중에 id 값이 꼬인 것처럼 보이기도 합니다.
두 명의 사람에게 같은 주민등록번호가 부여될 수 없는 것처럼 한 데이터베이스 안에 같은
primary key
도 존재해서는 안됩니다. (django에서는 일반적으로 id 값을 primary key로 부여받습니다.)이를 해결하려면 데이터베이스파일을 삭제한 후에 다시 migrate하는 방법이 있는데 라이브러리를 이용하여
manage.py reset_db
명령어로도 해결할 수 있습니다.
댓글 입력