Reverse Engineering SQLAlchemy deklarative definition der Klasse von vorhandenen MySQL-Datenbank?

Ich habe eine bestehende mysql-Datenbank mit rund 50 Tabellen.

Eher als hand-code eine deklarative style-SqlAlchemy-Klasse (wie hier gezeigt) für jede Tabelle gibt es ein tool/script/Befehl, den ich ausführen kann, gegen die mysql-Datenbank wird generieren eine python-Klasse, in der deklarative Stil für jede Tabelle in der Datenbank?

Nur eine Tabelle als Beispiel (erzeugen würde, für alle 50 im Idealfall) wie folgt:

+---------+--------------------+
| 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              |
+---------+--------------------+

Gibt es ein tool/script/Befehl zum erzeugen einer text-Datei mit etwas wie:

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)
  • Dies ist ein gutes Beispiel dafür, warum sollten Sie es vermeiden, SQL-Generatoren :).
  • ähm warum würde das sein ?
InformationsquelleAutor Peter McG | 2009-09-15
Schreibe einen Kommentar