Django迁移文件夹在哪里?

时间:2018-09-19 09:52:14

标签: django migration

我一定做错了。我到处都看到人们说“看一下迁移文件夹”,但是即使我看到迁移也没有文件夹。

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

2 个答案:

答案 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库目录)

**只有经过一定的经验,您才能看到一些东西-继续学习模型,您将看到迁移:) **