简单实体关系图生成

ERAlchem的Python项目详细描述


Join the chat at https://gitter.im/Alexis-benoist/eralchemy

eralchemy生成实体关系(er)图(如下所示) 从数据库或sqlalchemy模型。

示例

Example for NewsMeme

图形示例

Example for NewsMeme

快速启动

安装在Mac上

在osx上安装eralchemy最简单的方法是使用 Homebrew

$ brew install eralchemy

安装

要安装eralchemy,请执行以下操作:

$ pip install eralchemy

ERAlchemy需要 GraphViz生成 图形和python。两者都适用于windows、mac和linux。

从命令行使用

来自数据库
$ eralchemy -i sqlite:///relative/path/to/db.db -o erd_from_sqlite.pdf

数据库被指定为 SQLAlchemy 数据库URL。

来自标记文件。

$ curl 'https://raw.githubusercontent.com/Alexis-benoist/eralchemy/master/example/newsmeme.er' > markdown_file.er
$ eralchemy -i 'markdown_file.er' -o erd_from_markdown_file.pdf

从postgresql数据库到标记文件,不包括名为tempaudit的表
$ eralchemy -i 'postgresql+psycopg2://username:password@hostname:5432/databasename' -o filtered.er --exclude-tables temp audit

从PostgreSQL数据库到标记文件,不包括所有表中名为^{TT4}$和^{TT5}$的列
$ eralchemy -i 'postgresql+psycopg2://username:password@hostname:5432/databasename' -o filtered.er --exclude-columns created_at updated_at

从PostgreSQL数据库到架构的标记文件schema

$ eralchemy -i 'postgresql+psycopg2://username:password@hostname:5432/databasename' -s schema

来自python的用法

fromeralchemyimportrender_er## Draw from SQLAlchemy baserender_er(Base,'erd_from_sqlalchemy.png')## Draw from databaserender_er("sqlite:///relative/path/to/db.db",'erd_from_sqlite.png')

架构

Architecture schema

架构模式

由于它的模块化架构,它可以连接到其他 orms/odms/ogms/o*ms.

贡献

欢迎在GitHub issues上提供任何反馈。

要运行测试,请使用:$ py.test。有些测试需要本地 postgres数据库,在名为test all的数据库中使用名为test的架构 由密码为postgres的postgres用户拥有。

欢迎所有经过测试的公关人员。

注释

eralchemy的灵感来自erd, 尽管它能够直接从数据库中呈现er图 不仅仅是来自ER标记语言。

在apache许可证2.0下发布 创作者:Alexis Benoist Alexis_Benoist

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JavaFX TableView更新单元格,不更新对象值   在扫描器中使用分隔符的java   java OkHttp 4.9.2,连接无法重用,导致端口耗尽   eclipse中的c JNI:运行Java代码   java是否在出厂的所有硬件设备中都有/mnt/sdcard/Android/data文件夹(或等效文件夹)?   Java,在eclipse中访问资源文件夹中的图像   java为什么Bluemix dashDB操作抛出SqlSyntaxErrorException,SQLCODE=1667?   JavaHtmlUnitWebClient。getPage不处理javascript   Google API认证的java问题   java如何将JSON数组反序列化为Apache beam PCollection<javaObject>   ServerSocket停止接收命令,java/安卓   来自Java类的安卓 Toast消息   java如何自动重新加载应用程序引擎开发服务器?   java是否可以尝试/捕获一些东西来检查是否抛出了异常?   java如何做到这一点当我按下load game时,它不仅会加载信息,还会将您带到游戏中?   Java选项Xmx代表什么?   Java映射,它在插入时打印值   设置“ulimit c unlimited”后,java无法生成系统核心转储