如何查看 django sqlite3 db 的数据库和模式
Posted
技术标签:
【中文标题】如何查看 django sqlite3 db 的数据库和模式【英文标题】:How to view database and schema of django sqlite3 db 【发布时间】:2017-07-02 20:07:56 【问题描述】:我是 django 框架的新手。
我尝试按照 djangogirls 教程创建一个简单的博客。
这里默认使用 sqlite3 作为默认数据库引擎
DATABASES =
'default':
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
我也尝试了一些ORM queries,甚至performed some row sql queries
在我的 django 项目中,我有这个 db.sqlite3 文件
blog db.sqlite3 env manage.py mysite
我的问题:如何知道 django 在这个 db.sqlite3 中创建的架构(我知道 mysql 在那里我可以看到每个数据库和表的详细信息,所以在这里我只想知道更多的东西在sqlite中)
我的系统中有 sqlite3,我尝试了 .database 命令,但它只是显示给我
seq name file
--- --------------- ----------------------------------------------------------
0 main
【问题讨论】:
你试过.schema
吗?
是的,它显示为空白。试过 .help 和所有命令也
【参考方案1】:
转到数据库所在的文件夹,然后
sqlite3 db.sqlite3
然后
.tables
或 .schema
取决于你想要什么。而不是直接调用 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 数据库客户端。有了它,生活就轻松多了。
【讨论】:
嗯,是的,这一切都假设您的系统上有 sqlite3 可用sqlite3
与django
一起安装。【参考方案2】:
您可以使用以下命令获取创建的数据库的sql脚本。
python manage.py sqlmigrate app_label migration_name
【讨论】:
【参考方案3】:您可以在线查看您的 db.sqlite 文件。sqlite Online
只需将您的文件上传到那里,您就可以看到您的 db.sqlite 文件中的表。
【讨论】:
我的文件打不开【参考方案4】:为了在 Django shell 中复制 DESCRIBE
表,我已经跌跌撞撞了一个小时,并认为我已经破解了它。
我希望这对其他人有用。
在终端中 - 输入以下命令。
python3 manage.py dbshell
.tables
找到您要查找的表的名称,然后运行以下命令:
.header on
.mode column
pragma table_info('table you are looking for');
不要忘记最后一条指令中的分号。
【讨论】:
【参考方案5】:只是想补充一点,有人可以在 my_project_name>my_app_name>migrations 下找到迁移,通常您会选择编号最大的迁移。
那么命令应该是这样的:python manage.py sqlmigrate my_app_name number
【讨论】:
以上是关于如何查看 django sqlite3 db 的数据库和模式的主要内容,如果未能解决你的问题,请参考以下文章
不忽略 db.sqlite3 文件,即使我在 django 项目的 .gitignore 中指定