본문 바로가기

Web개발/DJANGO

Django 3.x App이름 바꾸기

반응형

원문 : https://coderbook.com/@marcus/how-to-change-name-of-django-application/

 

Django 3.x App이름 바꾸기


1. 일단 PyCharm을 사용한다.

2. App이름을 바꿔야하는 폴더이름을 Refactor기능을 사용하여 원하는 이름으로 바꾼다

3. 하기 파일들에서 제대로 바뀌었는지 확인하고 적당히 바꿔준다. 
    Import 구문의 앱이름
    Models Meta app_name 값
    INSTALLED_APPS settings (settings.py)
    앱을 지칭하거나 참고하는 기타 문자열 등

4. 데이타베이스서버에서 다음 쿼리를 실행한다. 

UPDATE django_content_type SET app_label='<새 앱이름>' WHERE app_label='<옛날 앱이름>';

5. 모델명도 바꿨으면 다음 쿼리도 실행한다. (모델명은 안바꿨으면 그냥 놔둘 것)
   

    UPDATE django_content_type SET name='<새모델이름>' where name='<옛날모델이름>' AND app_label='<옛날 앱이름>'

    ※ sqlite에서 직접해보니 name이라는 필드가 없음. 다음 쿼리로 해야할 듯함

    UPDATE django_content_type SET model='<새모델이름>' where model='<옛날모델이름>' AND app_label='<옛날 앱이름>'

6. 모델 테이블 이름도 바꿔준다. 이 쿼리는 해당되는 모든 모델테이블에서 돌려줘야한다. 

    ALTER TABLE '옛날앱_모델이름' RENAME TO '새앱_모델이름'
    ※주: sqlite로 했더니 기존 테이블의 스키마만 복사를 했음. 잘 안되면 수작업으로 바꿔줘야함.

7. migration할때쓰이는 설정값도 바꿔준다.

    UPDATE django_migrations SET app='<NewAppName>' WHERE app='<OldAppName>'

8. 앱폴더 밑의 static 폴더나 templates 폴더의 경로명도 적절하게 바꿔준다.

9. python manage.py migrate 해주면 끝!

반응형

'Web개발 > DJANGO' 카테고리의 다른 글

Django : Common Model활용하기  (0) 2020.07.07
Django : Form에서 현재 사용자 확인하기  (0) 2020.07.03
Django REST Framework 간단설정  (0) 2020.06.15
Django Permission  (0) 2020.06.13
Django : Model 정의하기  (0) 2020.05.29