장고 db테이블의 저장된 값들을 모두 삭제하더라도 id는 초기화되지 않기 때문에, id를 다시 1부터 시작하고자 한다면 추가적인 처리가 필요하다.
크게 2가지 방법이 있다.
(아이디 리셋 전에 테이블 객체들은 모두 지워준다. 남아있다면 id중복으로 인한 오류가 발생할 수 있다.)
다음의 명령어를 장고 프로젝트 터미널에서 입력한다.
#데이터베이스 열기 sqlite3 db.sqlite3
#앱 내 모델의 db테이블 id를 초기화 #<AppName_ModelName>은 db테이블 이름이다. 별도로 설정하지 않았다면 AppName_ModelName 이다. 주의할 점은 모두 소문자로 써야한다는 점이다. UPDATE sqlite_sequence SET seq = 0 WHERE sqlite_sequence.name = "<AppName_ModelName>";
#datas: 앱이름 #Data : 모델 이름 from datas.models import Data def index_reset(): records = Data.objects.all() index = 1 for record in records: old_record = Data.objects.get(id=record.id) record.id = index record.save() old_record.delete() index = index + 1