如何查看django sqlite3 db的数据库和模式

新手上路,请多包涵

我是 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



原文由 Shivkumar kondi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2k
2 个回答

转到数据库所在的文件夹,然后

sqlite3  db.sqlite3

然后

.tables

或.schema

取决于你想要什么。您可以直接调用 sqlite3 而不是

 python manage.py dbshell

然后键入 sqlite 命令。

如果您使用的是遗留数据库,您可以使用

 python manage.py inspectdb

请参阅 https://docs.djangoproject.com/en/3.0/ref/django-admin/#django-admin-inspectdb 了解更多信息。

但是请帮自己一个忙,获得一个 GUI 数据库客户端。当你拥有一个时,生活会容易得多。

原文由 e4c5 发布,翻译遵循 CC BY-SA 4.0 许可协议

为了在 Django shell 中复制 DESCRIBE 表,我已经摸索了一个小时,并认为我已经破解了它。我希望这对其他人有用。

在终端中 - 输入以下命令。

 python3 manage.py dbshell
.tables

找到您要查找的表的名称,然后运行以下命令:

 .header on
.mode column
pragma table_info('table you are looking for');

不要忘记最后一条指令中的分号。

原文由 dimButTries 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题