是否有能输出SQLAlchemy模型的数据库模型设计工具?

5 投票
3 回答
3215 浏览
提问于 2025-04-16 07:54

我正在做一个数据库模型,用来存储iCal日历格式的20多个字段,但我发现把这些字段一个一个输入到SQLAlchemy的model.py文件里实在是太麻烦了。有没有更聪明的方法呢?我希望能找到一个图形界面或者模型设计工具,能帮我自动生成model.py文件。我只需要指定列名和一些属性,比如类型、长度等等。

至少,我希望这个设计工具能输出一个表的模型。还有一些额外的需求,按优先级排序如下:

  • 能创建多个表
  • 支持多个表之间的基本关系(比如一对一、一对多)
  • 支持对列的约束。

我也愿意尝试其他方法来实现这个目标,比如用图形界面在数据库中创建表,然后再把这些表反映到模型中。

提前感谢你的反馈。

3 个回答

0

我刚发现了一个叫workbench_alchemy的脚本插件,它是为MySQL Workbench准备的。

我还没怎么用过,但到目前为止看起来不错!安装也很简单。它有一个选项可以让输出与SQlite兼容。这个脚本会在MySQL Workbench里面记录日志,所以你可以看到发生了什么。

另外,还有一个对工具链很有帮助的SQL WB插件,叫mysql-wb-exportsqlite,它可以导出SQlite的创建脚本。

我用的是MySQL Workbench 6.2(通过Debian的apt-get安装的),不过这个脚本在6.3版本上也能用。

0

“我会指定列的名称和一些属性,比如类型、长度等等。”

这不就是

“一个一个麻烦地把这些都输入到一个SQLAlchemy的model.py文件里”吗?

如果这两件事不是完全相同,请解释一下它们有什么不同。

5

还有另一种方法可以生成SQLAlchemy模型。你可以使用Vertabelo,这是一个在线的数据库设计工具。对于小项目来说,它是完全免费的。

在Vertabelo中创建好模型后,你需要通过一个脚本将其转换为SQLAlchemy映射类,这个脚本可以在GitHub上找到。

只需按照以下步骤操作:

  • 将图表下载为XML文件(只需在工具栏菜单上点击XML图标即可)

  • 生成SQLAlchemy模型

./vertabelo_sqlalchemy.py -i your_diagram.xml -o model.py

我知道这不是一种直接和完美的方法,但希望对你有帮助。

撰写回答