从现有 MySQL 数据库逆向工程 SQLAlchemy 声明类定义?

2023-12-25

我有一个预先存在的 mysql 数据库,其中包含大约 50 个表。

而不是手动编写声明式风格的 SqlAlchemy 类(如图所示 http://www.sqlalchemy.org/docs/05/ormtutorial.html#creating-table-class-and-mapper-all-at-once-declaratively)对于每个表,是否有一个我可以针对 mysql 数据库运行的工具/脚本/命令generate数据库中每个表的声明式风格的 python 类?

仅以一张表为例(理想情况下会生成所有 50 张表),如下所示:

+---------+--------------------+
| dept_no | dept_name          |
+---------+--------------------+
| d009    | Customer Service   |
| d005    | Development        |
| d002    | Finance            |
| d003    | Human Resources    |
| d001    | Marketing          |
| d004    | Production         |
| d006    | Quality Management |
| d008    | Research           |
| d007    | Sales              |
+---------+--------------------+

是否有工具/脚本/命令可以生成包含以下内容的文本文件:

from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class Department(Base):
   __tablename__ = 'departments'

   dept_no = Column(String(5), primary_key=True)
   dept_name = Column(String(50))

   def __init__(self, dept_no, dept_name):
       self.dept_no = dept_no
       self.dept_name = dept_name

   def __repr__(self):
      return "<Department('%s','%s')>" % (self.dept_no, self.dept_name)

use sql自动编码 http://code.google.com/p/sqlautocode/:

它是一种从现有数据库自动生成模型的灵活工具。

这是一种略有不同的方法SqlSoup https://pypi.org/project/sqlsoup/,它允许您使用表而无需显式定义它们。另一方面,sqlalutocode 将生成实际的 python 代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从现有 MySQL 数据库逆向工程 SQLAlchemy 声明类定义? 的相关文章

随机推荐