NMT Data Mining & Big Data

可视化数据库结构

2023-11-24
NMt

使用Django-extensions以及Graphviz工具生成数据库结构图。

@@@@

最近在做一个实时聊天系统,里面涉及到了数据库的内容,因为数据库内容学的不够扎实,所以对于数据库部分的理解比较有限,就借助了第三方工具的使用。这篇文章主要记载了一下如何生成数据库结构图。

1. 安装Django-extensions:

pip install django-extensions

注:django-extensions的版本要和Django的版本互相兼容。

2. 更改配置文件

在 Django 项目的 settings.py 中添加 django_extensionsINSTALLED_APPS:

INSTALLED_APPS = [
    # ... 其他已安装的应用 ...
    'django_extensions',
]

3. 安装 Graphviz:

django-extensions 使用 Graphviz 来生成图形。需要在系统中安装 Graphviz。这可以通过包管理器或从 Graphviz 官网 下载安装。

安装的时候需要将Graphviz软件的bin目录加入到环境变量中。(添加到Path路径下即可)

如果安装好了,在cmd下输入命令:dot -V 会显示版本信息:

4. 安装依赖包:

pip install pydotplus
pip install pygraphviz

5. 生成图形:

在 Django 项目目录下运行以下命令:

python manage.py graph_models -a -o my_project_model_graph.png

这将为项目中的所有应用生成一个模型关系图,并将其保存为 my_project_model_graph.png

报错汇总

  • 缺少 pydotplus 以及pygraphviz 两个依赖包:

      CommandError: Neither pygraphviz nor pydotplus could be found to generate the image. To generate text output, use the --json or --dot options.
    

    解决方案:

      pip install pydotplus
      pip install pygraphviz
    
  • 安装过程中缺少了 graphviz/cgraph.h 文件:

        note: This error originates from a subprocess, and is likely not a problem with pip.
        ERROR: Failed building wheel for pygraphviz
        Running setup.py clean for pygraphviz
      Failed to build pygraphviz
      ERROR: Could not build wheels for pygraphviz, which is required to install pyproject.toml-based projects
    

    这通常意味着 Graphviz 库没有被正确安装或者没有被添加到系统路径中。并且需要注意的是,若是正确加入环境变量之后仍旧出现这种问题,说明设置并没有生效,可以重启命令行工具。

  • Django-extensions 的版本与 Django 版本不兼容

     AttributeError: module 'django.db.models.deletion' has no attribute 'RESTRICT'
    

    解决方案:需要检查 Django 和 Django-extensions 的版本,并且通过查看官方文档来确定可以兼容的版本。

     python -m django --version
     pip show django-extensions
    

django-extensions官方文档: https://pypi.org/project/django-extensions/#history
Django官方文档: https://www.djangoproject.com/download/
channels官方文档: https://channels.readthedocs.io/en/latest/index.html

转载请注明:南梦婷的博客 » 点击阅读原文


Similar Posts

Comments