我是 django 框架的新手。
我尝试按照 djangogirls 教程创建一个简单的博客。
这里默认情况下,我们使用sqlite3作为默认数据库引擎:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
我也尝试了一些ORM查询,甚至执行了一些行sql查询
在我的 django 项目中,我有这个 db.sqlite3 文件:
blog db.sqlite3 env manage.py mysite
我的问题:如何知道django在这个db.sqlite3中创建的模式(我知道mysql,我可以在其中查看每个数据库和表的详细信息,所以在这里我只想了解sqlite中的更多内容)
我的系统中有 sqlite3,我尝试了 .database 命令,但它只是显示了我:
seq name file
--- --------------- ----------------------------------------------------------
0 main
转到数据库所在的文件夹,然后
sqlite3 db.sqlite3
然后
.tables
或 .架构
取决于你想要什么。您可以不直接调用 sqlite3
python manage.py dbshell
然后输入 sqlite 命令。
如果您正在使用旧数据库,您可以使用
为其生成 Django 模型 python manage.py inspectdb
请参阅 https://docs.djangoproject.com/en/3.0/ref/django-admin/#django-admin-inspectdb 了解更多信息。
但是请帮自己一个忙,获取一个 GUI 数据库客户端。当你拥有一个时,生活会变得更加轻松。
我已经跌跌撞撞地花了一个小时,目的是在 Django shell 中复制
DESCRIBE
表,并认为我已经破解了它。
我希望这对其他人有用。
在终端中 - 输入以下命令。
python3 manage.py dbshell
.tables
找到您要查找的表的名称,然后运行以下命令:
.header on
.mode column
pragma table_info('table you are looking for');
不要忘记最后一条指令中的分号。
您可以使用以下命令来获取所创建数据库的sql脚本。
python manage.py sqlmigrate app_label migration_name
您可以在线查看您的 db.sqlite 文件。
sqlite在线
只需将文件上传到那里,您就可以看到 db.sqlite 文件中的表。
只是想补充一点,有人可以在 my_project_name>my_app_name>migrations 下找到迁移,通常您会选择数量最大的一个。
那么命令应该是这样的:
python manage.py sqlmigrate my_app_name number