我已有一个包含约50个表的mysql数据库。
除了为每个表手动编写声明式SqlAlchemy类(如此处所示)外,还有没有我可以针对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代码。