我正在关注Django的官方教程并在https://docs.djangoproject.com/en/1.11/intro/tutorial02/中运行python manage.py migrate
。在此之后,我希望一些文件显示在民意调查/迁移中,但那里只有一个空__init__.py
,当我运行sqlite3
并输入.tables
或{{1没有输出。仍然,.schema
命令似乎成功:
python manage.py migrate
这里出了什么问题?
编辑:
我$ python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying sessions.0001_initial... OK
添加了'polls',
。然后:
INSTALLED_APPS
同样的问题。
EDIT2:运行$ python manage.py makemigrations
Migrations for 'polls':
polls/migrations/0001_initial.py
- Create model Choice
- Create model Question
- Add field question to choice
(django) Sahands-MacBook-Pro:mysite sahandzarrinkoub$ python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, polls, sessions
Running migrations:
Applying polls.0001_initial... OK
(django) Sahands-MacBook-Pro:mysite sahandzarrinkoub$ sqlite3
SQLite version 3.16.0 2016-11-04 19:09:39
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> .schema
sqlite>
后,python manage.py dbshell
和.schema
最终产生了输出。
答案 0 :(得分:3)
首先,检查polls
中的INSTALLED_APPS
列表中是否存在settings.py
个应用:
INSTALLED_APPS = [
# ...
'polls',
]
然后在执行makemigrations
之前尝试运行migrate
:
$ python manage.py makemigrations
$ python3 manage.py migrate
修改强>
现在,当您在数据库中创建polls
表时,您可以通过运行$ python manage.py dbshell
来访问sqlite3
客户端:
$ python manage.py dbshell
sqlite> .schema
仅运行sqlite3
和python manage.py dbshell
之间的差异在文档中说明:
django-admin dbshell
运行
ENGINE
设置中指定的数据库引擎的命令行客户端,并使用USER
,PASSWORD
等设置中指定的连接参数。
答案 1 :(得分:0)
你可能做错了或者你可能没有。这取决于
INSTALLED_APPS
在这种情况下,你没有做错任何事。当您创建至少一个模型并且在INSTALLED_APPS
INSTALLED_APPS
在这种情况下,您只需将应用的名称添加到INSTALLED_APPS
希望这有帮助