accounts 앱에서 커스텀 사용자 모델을 생성하고 마이그레이션하려는데 아래와 같은 에러가 발생했다.
Migration admin.0001_initial is applied before its dependency accounts.0001_initial on database 'default'.
admin.0001_initial 마이그레이션 파일이 accounts.0001_initial 마이그레이션 파일보다 먼저 적용되어있어서 문제가 발생한 것 같다.
python manage.py showmigrations
위의 명령어를 통해 마이그레이션 히스토리를 확인해보았다.
"accounts" 앱의 0001_initial 마이그레이션은 적용되지 않았고, "admin" 앱의 0001_initial 마이그레이션은 이미 적용되었음을 확인할 수 있었다.
accounts
[ ] 0001_initial
admin
[X] 0001_initial
[X] 0002_logentry_remove_auto_add
[X] 0003_logentry_add_action_flag_choices
auth
[X] 0001_initial
[X] 0002_alter_permission_name_max_length
[X] 0003_alter_user_email_max_length
[X] 0004_alter_user_username_opts
[X] 0005_alter_user_last_login_null
[X] 0006_require_contenttypes_0002
[X] 0007_alter_validators_add_error_messages
[X] 0008_alter_user_username_max_length
[X] 0009_alter_user_last_name_max_length
[X] 0010_alter_group_name_max_length
[X] 0011_update_proxy_permissions
[X] 0012_alter_user_first_name_max_length
blog
(no migrations)
contenttypes
[X] 0001_initial
[X] 0002_remove_content_type_name
sessions
[X] 0001_initial
accounts 앱의 migrations 폴더를 비우고 admin 앱의 초기 마이그레이션을 롤백해주었다.
python manage.py migrate admin zero
그 후 accounts 앱의 마이그레이션을 적용하였다.
python manage.py makemigrations accounts
python manage.py migrate accounts
그 후 admin 앱의 마이그레이션을 적용하였다.
python manage.py migrate admin
아래와 같이 마이그레이션이 적용된 것을 확인할 수 있다.
accounts
[X] 0001_initial
admin
[X] 0001_initial
[X] 0002_logentry_remove_auto_add
[X] 0003_logentry_add_action_flag_choices
auth
[X] 0001_initial
[X] 0002_alter_permission_name_max_length
[X] 0003_alter_user_email_max_length
[X] 0004_alter_user_username_opts
[X] 0005_alter_user_last_login_null
[X] 0006_require_contenttypes_0002
[X] 0007_alter_validators_add_error_messages
[X] 0008_alter_user_username_max_length
[X] 0009_alter_user_last_name_max_length
[X] 0010_alter_group_name_max_length
[X] 0011_update_proxy_permissions
[X] 0012_alter_user_first_name_max_length
blog
(no migrations)
contenttypes
[X] 0001_initial
[X] 0002_remove_content_type_name
sessions
[X] 0001_initial
python manage.py showmigrations
를 통해 마이그레이션 히스토리를 확인할 수 있다.python manage.py migrate 앱이름 zero
를 통해 마이그레이션을 롤백할 수 있다.