Tengo una base de datos mysql preexistente que contiene alrededor de 50 tablas.¿Invertir la definición de clase declarativa SQLAlchemy de la base de datos MySQL existente?
En lugar de código de mano de una clase de estilo declarativo sqlalchemy (as shown here) para cada tabla, ¿hay una herramienta/script/comando que se puede ejecutar contra la base de datos MySQL que generar una clase Python en el estilo declarativo para cada tabla en la base de datos?
Por poner un solo cuadro como ejemplo (que generaría para los 50 idealmente) de la siguiente manera:
+---------+--------------------+
| 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 |
+---------+--------------------+
¿Existe una herramienta/script/comando que puede generar un archivo de texto que contiene algo como:
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)
Este es un buen ejemplo de por qué debe evitar los generadores SQL :). –
uh ¿por qué sería eso? – zzzeek