使用 sqlautocode 自动生成 SQLAlchemy 的 ORM 设置脚本

日常工作中,我喜欢使用 MySQL Workbench 的数据模型工具跟踪和管理数据库的变更以及生成管理所需的文档。然而每当数据库的结构稍作变更,也需要同时修改使用SQLAlchemy 编写的 ORM 设置脚本。使用 SqlSoup 固然可以在不配置 ORM 的情况下使用 SQLAlchemy 的主要功能,但是是否能够根据现有的数据库自动生成脚本呢?上网搜索了一下,找到了这个名为 sqlautocode 的实用工具。只需在命令行中执行 sqlautocode 命令即可根据参数自动生成代码!

其调用格式如下:

sqlautocode <database_url> [options, ]

其中 database_url 就是我们使用 SQLAlchemy 时配置的数据库 url,有的人也习惯称之为 dsn。可选的参数如下:

-h, --help

显示帮助信息

-o OUTPUT, --output=OUTPUT

要写入的文件,默认是 stdout

--force

覆盖要写入的文件

-s SCHEMA, --schema=SCHEMA

可选参数,用于反向映射指定的数据库

-t TABLES, --tables=TABLES

可选参数,是一个使用逗号隔开的列表,用于指定要反向工程的表名,支持 * 作为通配符,例如:

--tables account_*,orders,order_items,*_audit

-b TABLE_PREFIX, --table-prefix=TABLE_PREFIX

生成的 SQLAclhemy 表对象的前缀

-a TABLE_SUFFIX, --table-suffix=TABLE_SUFFIX

生成的 SQLAclhemy 表对象的后缀

-i, --noindexes, --noindex

不生成索引信息

-g, --generic-types

生成是使用符合 ANSI 标准的字段类型而不是数据库特定的类型

--encoding=ENCODING

输出文件使用的编码,默认为 utf8

-e, --example

同时生成如何访问数据的示例代码

-3, --z3c

生成用于 z3c.sqlalchemy 的代码

-d, --declarative

生成使用 SQLAlchemy declarative 的代码

-n, --interactive

在生成的代码包含交互示例


使用 sqlautocode 自动生成 SQLAlchemy 的 ORM 设置脚本

上一篇:WinDBG中条件字符串设断点


下一篇:实战使用saltstack源码安装配置mysql