코드 리뷰를 받고 있는데, 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 해주면 설정이 제대로 변경이 되었는지 확인가능하다.
'Archive > Develop' 카테고리의 다른 글
[ Code Editor ] VSCode 새 탭으로 파일 열기 (0) | 2022.06.18 |
---|---|
파이썬 의존성 관리 Poetry 란 무엇인가 (0) | 2022.06.08 |
[ Docker ] Docker란 무엇이며, 컨테이너는 왜 등장하는가 #1 (0) | 2022.05.17 |
[Diagram] 시퀀스 다이어그램(Sequence Diagram) (0) | 2022.05.16 |
[ Django ] SerializerMethodField (0) | 2022.04.18 |