Đăng vào

Tự động tạo Entity Relationship Diagram khi dùng Django Framework

Django là một Framework giúp bạn lập trình web nhanh hơn và tốt hơn so với các framework như Flask mà lại dễ hơn nhiều. Django có tài liệu rất tốt và tuân theo nguyên tắc DRY (Đừng lặp lại chính mình) trong khi những Framework khác không quan tâm nhiều về điều này. Django cũng hỗ trợ ORM (Object Relistic Mapping).

Gần đây, trong quá trình phát triển tiếp một project trên Django Framework mình gặp vấn để là làm sao hiểu được cấu trúc của dự án cũ trước đó (dự án cũ không có tài liệu ADD). Sau thời gian bỏ công tìm hiểu thì cuối cùng cũng mày mò ra phương pháp xuất ra Entity Relationship Diagram (ERD) bằng cách sử dụng thư viện pygraphviz.

Với môi trường phát triển là Linux thì việc cài đặt pygraphviz quá đơn giản bằng lệnh sudo blabla.. Tuy nhiên việc cài trên Window hơi phức tạp và dưới đây là cách thực hiện.

Cài Graphviz và thư viện python pygraphviz trên Window

Môi trường trong ví dụ này là Window 10 64bit và Python 3.9

Sau khi hoàn thành các bước trên, có thể cài đặt thư viện Python của Graphviz bằng lệnh

pip install pygraphviz

Cấu hình project Django

Chỉnh sửa INSTALLED_APPS trong setting.py: thêm "django_extensions"

INSTALLED_APPS = [
    # Django modules
    # .....
    "django_extensions",
]

Xuất Data Modeling Diagram

python ./manage.py graph_models --pygraphviz -a -g -o database_visualization.png

Sau khi lệnh thực thi thành công thì sẽ ra được hình như dưới Đây

database
visualization