【发布时间】:2023-03-07 11:00:02
【问题描述】:
我有一个预先存在的 mysql 数据库,其中包含大约 50 个表。
不是为每个表手动编写声明性样式的 SqlAlchemy 类 (as shown here),是否有一个工具/脚本/命令我可以针对 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)
【问题讨论】:
-
这是一个很好的例子,说明了为什么你应该避免使用 SQL 生成器:)。
-
呃为什么会这样?
标签: python mysql sqlalchemy