我按照Django的官方教程在https://docs.djangoproject.com/en/1.11/intro/tutorial02/中运行了python manage.py migrate
。在此之后,我希望在轮询/迁移中显示一些文件,但那里只有一个空的__init__.py
,当我运行sqlite3
并键入.tables
或.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
。然后:
$ 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>
型
同样的问题。
EDIT 2:在运行python manage.py dbshell
、.schema
和.tables
时,最终产生了输出。
3条答案
按热度按时间t98cgbkg1#
首先,检查您的
polls
应用是否存在于settings.py
的INSTALLED_APPS
列表中:字符串
然后尝试在执行
migrate
之前运行makemigrations
:型
编辑:
现在,在数据库中创建了
polls
表,您可以通过运行$ python manage.py dbshell
来访问sqlite3
客户端:型
只运行
sqlite3
和python manage.py dbshell
之间的区别在文档中有说明:django-admin dbshell
个使用
USER
、PASSWORD
等设置中指定的连接参数,为ENGINE
设置中指定的数据库引擎重新配置命令行客户端。dfuffjeb2#
你可能做错了什么,也可能没做错什么,这要看情况
1.如果您尚未在models.py文件中创建任何模型,并且已在settings.py
INSTALLED_APPS
中注册了应用程序在这种情况下,你没有做错任何事情。当你创建了至少一个模型并且在
INSTALLED_APPS
中注册了你的应用时,Django会在你的应用的migrations文件夹中创建一个迁移1.如果您创建了模型,但忘记将应用添加到
INSTALLED_APPS
在这种情况下,您只需将应用程序的名称添加到
INSTALLED_APPS
希望这有帮助
ltqd579y3#
在应用程序中创建“migrations”目录,并在其中创建名为“init.py”的空文件。然后运行makemigrations和migrate命令。
这解决了我的问题。