python – 反向工程SQLAlchemy声明式从现有的MySQL数据库定义?

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

而不是手工编写每个表的声明式SqlAlchemy类(as shown here),是否有一个工具/ script /命令,我可以针对mysql数据库运行,将为数据库中的每个表的声明样式生成一个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)
使用sqlautocode

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

这是一个稍微不同的方法SqlSoup,它允许您使用表而不显式定义它们。另一方面,sqlalutocode将生成实际的python代码。

http://stackoverflow.com/questions/1425412/reverse-engineer-sqlalchemy-declarative-class-definition-from-existing-mysql-dat

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:python – 反向工程SQLAlchemy声明式从现有的MySQL数据库定义?