使用Python生成数据库架构

14 投票
3 回答
24125 浏览
提问于 2025-04-16 20:04

我想为我的Django项目生成一个基本的数据库结构,这样可以展示我所有的应用程序、模型和模型字段,以及一些边界条件等等。请问有没有现成的数据库结构生成工具可以用在Django上?如果没有,我该怎么做呢?

3 个回答

2

使用你的数据库

正如在教程中提到的,你可以使用数据库的命令行工具来获取数据库的结构信息。

下面是使用sqlite的例子:

python manage.py dbshell
> .schema

你可能需要先安装sqlite3才能使用这个功能。

使用Django

以前你可以用 python manage.py sql ... 来查看数据库的结构,但在1.9版本中这个功能被弃用了,取而代之的是迁移功能。你可以通过以下命令查看初始的迁移脚本:

python manage.py sqlmigrate myapp 0001_initial

(来自回答:Django 1.9中sqlall的等价物是什么?)

5

manage.py sql <appname appname ...> 是一个命令,用来查看你在 Django 应用中定义的数据库表的 SQL 语句。简单来说,这个命令可以帮助你了解 Django 是如何把你的模型(也就是你定义的数据结构)转换成数据库可以理解的格式。你只需要把 `` 替换成你自己的应用名称,就能看到相关的 SQL 语句了。想要了解更多,可以参考 这份文档

15

如果你想查看SQL的结构,可以运行 ./manage.py sqlall <appname> 这个命令。

如果你想要一个结构的可视化图,可以安装 django-extensions,然后运行 ./manage.py graph_models -a -g -o my_project.png。这个命令会为你生成一个漂亮的结构图,但通常会省略一些边界条件。你可能需要查看一下选项,以添加更多的数据。http://readthedocs.org/docs/django-extensions/en/latest/graph_models.html

撰写回答