본문 바로가기
Programming

[ Django ] Django App 이름 변경 하는 방법 (+ 수동 설정) / MYSQL ver.

by 코뮤(commu) 2022. 5. 25.
728x90
반응형

이미지 출처 : https://upload.wikimedia.org/wikipedia/commons/thumb/7/75/Django_logo.svg/2560px-Django_logo.svg.png

 

코드 리뷰를 받고 있는데, App 이름을 복수가 아닌 단수로 짓는것이 더 좋을 것 같다는

피드백이 왔다.

 

해당 피드백에 동의해서 앱 이름을 변경하려고 했는데,

생각보다 이것저것 손 봐야해서 매뉴얼을 만들어둘까 한다.

어차피 나중에 100% 다른 블로거 분들의 글들을 보면서 해야할 것 같으니 내가 쓴다!

 

 

 

 


 

 

우선 나는 VSCode 에디터를 이용했다.

파이참에서는 refactor 기능이 따로 있는걸로 아는데, vscode 도 app 이름을 변경하면 refactor 기능을 이용하겠냐는 창이 뜬다.

 

yes 해주면 모든 것이 다 변경되면 좋았겠지만,, 난 아무것도 변경되지 않아서 수동으로 하나하나 해줬다.

 

 

1. 파일 변경

- INSTALLED_APPS 에 써져있는 앱 이름

- Models Meta app_name

- Import 구문 앱 이름

- 앱이름/app.py 내에 Config name

- urls.py (include 되어 있다면)

 

2. 데이터베이스 변경

mysql 서버에서 아래 쿼리를 실행한다.

 

// 장고 컨텐츠 타입 앱 라벨 변경
update django_content_type set app_label='새로운 앱 이름' where app_label='옛날 앱 이름';

// 테이블 이름 변경
alter table 옛날앱_모델이름 rename 현재앱_모델이름;

// migration 설정값 변경
update django_migrations set app='새로운 앱 이름' where app='옛날 앱 이름';

 

혹시 위 과정이 끝난 이후에 새롭게 migration 이 되지 않는다면,

아마 models 내에 여러가지 모델이 외래키나 manytomany 등으로 엮어져있을 것이다.

migration 파일을 수정해주자.

 

내가 경험해본 경우는 두가지이다.

 

- dependencies 를 수정해야하는경우

- manytomany 필드에 to 란을 수정해야하는 경우

 

연결되는 대상이 '예전 이름_모델' 이런식으로 설정이 되어있다면 '새로운 앱이름_모델' 로 변경해주면 된다.

 

 

 

3. migration / migrate 작업

 

마지막으로 migrate 해주면 설정이 제대로 변경이 되었는지 확인가능하다.

 

 

 

 

728x90
반응형