IT/Python

django.db.utils.OperationalError: (1050, "Table already exists") migrate 오류 해결법

조스톡 2022. 9. 27. 12:00
728x90
반응형

 

 

문제

 

Django에서 Model을 수정한 뒤 적용하기 위해 migrate을 진행하니 오류가 발생했다.

 

django.db.utils.OperationalError: (1050, "Table already exists")

 

SQL에 이미 테이블이 존재하여 오류가 발생하는 것인데, 이미 있는 테이블을 삭제하고 다시 데이터를 넣기는 번거롭다.

내용

 

C:\mysite>python manage.py migrate

Operations to perform:
Apply all migrations: admin, auth, contenttypes, data, django_apscheduler, letsencrypt, notice, pybo, sessions, stock
Running migrations:
Applying data.0001_initial...Traceback (most recent call last):
File "c:\ProgramData\Anaconda3\envs\py32\lib\site-packages\django\db\backends\utils.py", line 82, in _execute
return self.cursor.execute(sql)
File "c:\ProgramData\Anaconda3\envs\py32\lib\site-packages\django\db\backends\mysql\base.py", line 73, in execute
return self.cursor.execute(query, args)
File "c:\ProgramData\Anaconda3\envs\py32\lib\site-packages\MySQLdb\cursors.py", line 209, in execute
res = self._query(query)

 

 

해결

 

해결 방법이 간단하면서 재밌었다.

 

migrate이 된 것으로 속이면(?) 해결이 된다.

 

python manage.py migrate --fake <appname>

 

# 예시
C:\mysite>python manage.py migrate --fake data

 

728x90
반응형