我一定做错了。我到处都看到人们说“看一下迁移文件夹”,但是即使我看到迁移也没有文件夹。
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
答案 0 :(得分:2)
简短答案:迁移源自您在INSTALLED_APPS
中安装的Django应用和第三方应用。不是您自己定义的。
迁移是每个应用程序 生成的,并存储在some_app/migrations
中。
即使您未为 应用定义迁移,通常也会进行迁移,因为您(可能)在您的{中包括了Django(和其他第三方)定义的一些应用{1}},它们也有迁移。
例如,您的INSTALLED_APPS
最有可能包含:
INSTALLED_APPS
如果我们看一下source code of this app [GitHub],就会看到# settings.py
INSTALLED_APPS = [
# ...
'django.contrib.auth',
# ...
]
的目录。通过将此应用添加到migrations
,您就可以将Django库本身(或第三方)定义的应用添加到您的项目中,并以相同的方式处理这些应用的迁移(实际上,这些应用程序没有什么“神奇”的东西,更多的是,这些应用程序可以解决常见问题,因此您不再需要关心这些问题。
INSTALLED_APPS
应用的文件结构类似(发出噪音):
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
应用(第二部分)执行迁移时在控制台上看到的迁移完全相同。
答案 1 :(得分:1)
Django Project实际上是-一些应用程序和配置文件的组合。应用程序和配置文件实际上是Python模块/软件包。
每个Django项目都安装了一些默认的“应用程序”-在INSTALLED_APPS
列表中有提及。
这些默认的“应用程序”未存储/安装在您的项目目录中。
示例:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
说django.contrib.admin
应用已与您的应用一起使用。 migrations
的{{1}}目录位于site-packages/django/contrib/admin/migrations
(搜索您的python库目录)
**只有经过一定的经验,您才能看到一些东西-继续学习模型,您将看到迁移:) **