🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

models.py에 정의된 모델의 이름을 수정할 수 있을까요?

22.03.03 18:13 작성 조회수 107

0

안녕하세요, 강사님~

# Products 모델
class Post(models.Model):
product_name = models.CharField(max_length=100)

다음과 같이 Post라고 정의를 맨 처음에 했었으나, 프로젝트를 하다보니 Product라는 이름이 더 의미가 맞다고 판단이 되어 이름을 바꾸려고 하는데요. 그냥 위에 코드에서 단순히 Post를 Product로 수정하면 안될 것 같아서요.

혹시, python manage.py migrate 앱이름 zero 이렇게 하고 이름을 바꾼 다음에 다시 

python manage.py makemigrations 앱이름 / python manage.py migrate 앱이름 이런식으로 진행해봐도 괜찮을까요?

추가로, 앱 이름도 posts로 되어있는데... 

제가 이러한 질문을 드리는 이유가 나중에 취업 시 포트폴리오를 제출할 때 해당 프로젝트의 모델명이 위의 코드처럼 Post인데 Product에 대한 필드로 채워져 있어서 왜 이렇게 설정을 했는지 물어보시지 않을까라는 생각 때문인데요, 이게 문제가 될 수 있을까요..?

 

 

답변 1

답변을 작성해보세요.

1

안녕하세요.

앱이름과 모델이름을 전혀 새로운 이름으로 변경하시고자 하시는 경우, 말씀하신 것처럼 기존 앱의 마이그레이션을 모두 롤백(zero)하시고 나서, 앱이름/migrations/ 내의 마이그레이션  파일로 모두 삭제해주시구요.

이미 생성된 앱의 이름을 변경하시기보다,

startapp 명령으로 새 앱을 만드신 후에, 모델 코드등을 복사하여 옮기시고, 기존 앱은 삭제하시는 방향으로 하시면, 좀 더 수월하게 작업을 하실 수 있습니다.

그리고 새롭게 마이그레이션 파일을 생성하시고, migrate도 해보실 수 있으시겠습니다.

화이팅입니다. :-)

채널톡 아이콘