[Django]Django App 이름 변경

Edit

[Django]Django App 이름 변경

장고 앱 이름을 변경할 상황이 발생. 문제는 migrate까지 이미 다 시킨 상태. 단순히 이름 변경으로는 해결이 되지 않는다.
klamer이라는 앱을 klymer로 변경해보자. (MySQL)

장고는 migrate 실행시 django_migrationdjango_content_type에 앱 이름이 들어가고 MySQl의 테이블 이름에 앱 이름이 들어간다. 따라서 단순히 폴더나 클래스 이름을 바꾸는 것에 끝나는 것이 아니라 직접 sql문으로 고쳐주어야 한다.

  1. 앱 디렉토리 이름 변경 klamer > klymer

  2. settings.py 의 klamerklymer로 변경

#settings.py
INSTALLED_APPS = [
...
#'klamer',
'klymer',
]
  1. klymer.apps.py의 app 이름 변경
#class KlamerConfig(AppConfing):
# name = 'klamer'
class KlymerConfig(AppConfig):
name = 'klymer'
  1. MySQL에 접속
python manage.py dbshell

mysql>
  1. table 목록을 보면 다음과 같이 나온다. 변경 해주어야하는 거는 저 3개다.
mysql > show tables;
+-------------------+
| Tables_in_... |
+-------------------+
| ... |
|django_content_type|
| django_migrations |
| klamer_input |
+-------------------+
  1. klamer 앱 table 이름을 바꾸자.
mysql > alter table klamer_input rename to klymer_input
  1. django content_type 과 django_migrations 내 klamer 이름을 변경하자.
mysql > update django_content_type set app_label='klymer' where app_label='klamer'
mysql > update django_migrations set app='klymer' where app='klamer'

8 . klymer/migrations 폴더 내 모든 파일 삭제 후 migrate

python manage.py makemigrations
python manage.py migrate
%23%20%5BDjango%5DDjango%20App%20%uC774%uB984%20%uBCC0%uACBD%0A@%28Postach.io%29%5Bdjango%7Cmysql%7Cpublished%5D%0A%0A%3E%20%uC7A5%uACE0%20%uC571%20%uC774%uB984%uC744%20%uBCC0%uACBD%uD560%20%uC0C1%uD669%uC774%20%uBC1C%uC0DD.%20%uBB38%uC81C%uB294%20migrate%uAE4C%uC9C0%20%uC774%uBBF8%20%uB2E4%20%uC2DC%uD0A8%20%uC0C1%uD0DC.%20%uB2E8%uC21C%uD788%20%uC774%uB984%20%uBCC0%uACBD%uC73C%uB85C%uB294%20%uD574%uACB0%uC774%20%uB418%uC9C0%20%uC54A%uB294%uB2E4.%0A%3E%20%60klamer%60%uC774%uB77C%uB294%20%uC571%uC744%20%60klymer%60%uB85C%20%uBCC0%uACBD%uD574%uBCF4%uC790.%20%28MySQL%29%0A%0A%uC7A5%uACE0%uB294%20migrate%20%uC2E4%uD589%uC2DC%20%60django_migration%60%uACFC%20%60django_content_type%60%uC5D0%20%uC571%20%uC774%uB984%uC774%20%uB4E4%uC5B4%uAC00%uACE0%20MySQl%uC758%20%uD14C%uC774%uBE14%20%uC774%uB984%uC5D0%20%uC571%20%uC774%uB984%uC774%20%uB4E4%uC5B4%uAC04%uB2E4.%20%uB530%uB77C%uC11C%20%uB2E8%uC21C%uD788%20%uD3F4%uB354%uB098%20%uD074%uB798%uC2A4%20%uC774%uB984%uC744%20%uBC14%uAFB8%uB294%20%uAC83%uC5D0%20%uB05D%uB098%uB294%20%uAC83%uC774%20%uC544%uB2C8%uB77C%20%uC9C1%uC811%20sql%uBB38%uC73C%uB85C%20%uACE0%uCCD0%uC8FC%uC5B4%uC57C%20%uD55C%uB2E4.%0A%0A1.%20%uC571%20%uB514%uB809%uD1A0%uB9AC%20%uC774%uB984%20%uBCC0%uACBD%20%60klamer%60%20%3E%20%60klymer%60%0A%0A2.%20settings.py%20%uC758%20%60klamer%60%uB97C%20%20%60klymer%60%uB85C%20%uBCC0%uACBD%0A%0A%60%60%60%20python%0A%23settings.py%0AINSTALLED_APPS%20%3D%20%5B%0A%09...%0A%09%23%27klamer%27%2C%0A%09%27klymer%27%2C%0A%5D%0A%60%60%60%0A%0A3.%20klymer.apps.py%uC758%20app%20%uC774%uB984%20%uBCC0%uACBD%0A%60%60%60python%0A%23class%20KlamerConfig%28AppConfing%29%3A%0A%23%09name%20%3D%20%27klamer%27%0Aclass%20KlymerConfig%28AppConfig%29%3A%0A%09name%20%3D%20%27klymer%27%0A%60%60%60%0A%0A4.%20MySQL%uC5D0%20%uC811%uC18D%0A%60%60%60bash%0Apython%20manage.py%20dbshell%0A%0Amysql%3E%0A%60%60%60%0A%0A5.%20table%20%uBAA9%uB85D%uC744%20%uBCF4%uBA74%20%uB2E4%uC74C%uACFC%20%uAC19%uC774%20%uB098%uC628%uB2E4.%20%uBCC0%uACBD%20%uD574%uC8FC%uC5B4%uC57C%uD558%uB294%20%uAC70%uB294%20%uC800%203%uAC1C%uB2E4.%0A%60%60%60sql%0Amysql%20%3E%20show%20tables%3B%0A+-------------------+%0A%7C%20%20%09Tables_in_...%20%20%20%7C%0A+-------------------+%0A%7C%09%09...%09%09%09%7C%0A%7Cdjango_content_type%7C%0A%7C%20django_migrations%09%7C%0A%7C%09klamer_input%09%7C%0A+-------------------+%0A%60%60%60%0A%0A6.%20klamer%20%uC571%20table%20%uC774%uB984%uC744%20%uBC14%uAFB8%uC790.%0A%60%60%60sql%0Amysql%20%3E%20alter%20table%20klamer_input%20rename%20to%20klymer_input%0A%60%60%60%0A%0A7.%20django%20content_type%20%uACFC%20django_migrations%20%uB0B4%20klamer%20%uC774%uB984%uC744%20%uBCC0%uACBD%uD558%uC790.%0A%60%60%60%09sql%0Amysql%20%3E%20update%20django_content_type%20set%20app_label%3D%27klymer%27%20where%20app_label%3D%27klamer%27%0Amysql%20%3E%20update%20django_migrations%20set%20app%3D%27klymer%27%20where%20app%3D%27klamer%27%0A%60%60%60%0A%0A8%20.%20**klymer/migrations%20%uD3F4%uB354%20%uB0B4%20%uBAA8%uB4E0%20%uD30C%uC77C%20%uC0AD%uC81C%20%uD6C4**%20migrate%0A%60%60%60bash%0Apython%20manage.py%20makemigrations%0Apython%20manage.py%20migrate%0A%60%60%60