django - Where is the Django migrations folder?
问题描述
I must be doing something wrong. Everywhere I see people saying "Look at the migrations folder" but even though I can see migrations there is no folder.
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
解决方案
简短的回答:迁移源自您安装的 Django 应用程序和第三方应用程序INSTALLED_APPS
。不是你自己定义的。
迁移是为每个应用程序生成的,并存储在some_app/migrations
.
即使您没有为您的应用程序定义迁移,通常也会发生迁移,因为您(可能)在您的INSTALLED_APPS
.
例如,您很可能INSTALLED_APPS
包含:
# settings.py
INSTALLED_APPS = [
# ...
'django.contrib.auth',
# ...
]
如果我们看一下这个应用程序的源代码 [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
当您为应用程序执行迁移时,这些迁移与您在控制台上看到的迁移完全相同auth
(第二部分)。
推荐阅读
- javascript - 通过单击 Jquery 数据表中的按钮加载 MVC 核心视图(通过调用操作)
- visual-studio-2017 - Visual Studio 和 .NET Framework 4.6.2
- jenkins - jenkins.plugins.publish_over.BapPublisherException:消息 [Auth 失败]]
- spring-websocket - 带有 SockJS 后备的 Spring Boot websockets - 无法正常工作
- android - 在 onPostExecute 中移动到另一个活动时出现黑屏
- python - 缩短链接重定向
- python - Extract text with conditions in Python
- ruby-on-rails - 如何使用下载按钮将提交的表单数据转换为动态创建的 csv。
- c++ - 为什么两个 3D 对象的交集是锯齿形的?
- c++ - 带有内部对象的 std::move - 不匹配调用