Django 迁移文件夹在哪里?

Kar*_*orn 6 migration django

我一定做错了什么。我到处都看到有人说“查看迁移文件夹”,但即使我可以看到迁移,也没有文件夹。

Karls-Mac-mini:django_test karl$ tree
??? django_test
?   ??? __init__.py
?   ??? __pycache__
?   ?   ??? __init__.cpython-35.pyc
?   ?   ??? settings.cpython-35.pyc
?   ?   ??? urls.cpython-35.pyc
?   ??? settings.py
?   ??? urls.py
?   ??? wsgi.py
??? manage.py

Karls-Mac-mini:django_test karl$ python manage.py showmigrations
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
contenttypes
 [X] 0001_initial
 [X] 0002_remove_content_type_name
sessions
 [X] 0001_initial
Run Code Online (Sandbox Code Playgroud)

Wil*_*sem 7

简短回答:迁移源自 Django 应用程序和您安装在INSTALLED_APPS. 不是你自己定义的那些。

迁移是按应用生成的,并存储在some_app/migrations.

即使您没有为您的应用定义迁移,通常也会发生迁移,因为您(可能)在您的INSTALLED_APPS.

例如,您很可能INSTALLED_APPS包含:

# settings.py

INSTALLED_APPS = [
    # ...
    'django.contrib.auth',
    # ...
]
Run Code Online (Sandbox Code Playgroud)

如果我们看一下这个应用程序 [GitHub]的源代码,我们会看到目录migrations。通过将此应用程序添加到INSTALLED_APPS添加到您的项目中,因此您已将 Django 库本身(或由第三方)定义的应用程序添加到您的项目中,并且这些应用程序的迁移因此以相同的方式进行处理(实际上没有什么“神奇”的这些应用程序,更多的是它们处理常见问题,因此您不再需要关心这些)。

该django.contrib.auth应用程序的文件结构类似于(忽略噪音):

django/
    contrib/
        auth/
             migrations/
                __init__.py
                0001_initial.py
                0002_alter_permission_name_max_length.py
                0003_alter_user_email_max_length.py
                0004_alter_user_username_opts.py
                0005_alter_user_last_login_null.py
                0006_require_contenttypes_0002.py
                0007_alter_validators_add_error_messages.py
                0008_alter_user_username_max_length.py
                0009_alter_user_last_name_max_length.py
Run Code Online (Sandbox Code Playgroud)

这些与您在为auth应用程序执行迁移时在控制台上看到的迁移完全相同(第二部分)。