Reverse Engineer SQLAlchemy deklarative Klassendefinition aus der vorhandenen MySQL Datenbank?

Ich habe eine bereits vorhandene MySQL-Datenbank mit rund 50 Tabellen.

Anstatt Hand Code eine deklarative Stil SqlAlchemy Klasse ( wie hier gezeigt ) für jede Tabelle, gibt es ein Tool / Skript / Befehl Ich kann gegen die MySQL-Datenbank, die eine Python-Klasse in der deklarativen Stil für jede Tabelle in der Datenbank zu generieren laufen?

  • Gedächtnis-eingebauter SqlAlchemy Iterator / Generator?
  • Howto erstellen db mysql mit sqlalchemy
  • Wie kontrollierst du MySQL-Timeouts von SQLAlchemy?
  • Definieren einer Tabelle mit sqlalchemy mit einem mysql unix Zeitstempel
  • SQL Alchemy - Eine Liste der Tabellen erhalten
  • Sqlalchemy gibt "veraltete" Zeilen zurück?
  • Um nur einen Tisch als Beispiel zu nehmen (würde für alle 50 ideal generieren) 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 / Skript / Befehl, der eine Textdatei erzeugen kann, die so 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) 

  • Ist es möglich, zufällige Schwimmer in Reichweite [a, b] in Python zu finden?
  • Was genau ist der "Auflösung" -Parameter von numpy float
  • Was ist genauer, x **. 5 oder math.sqrt (x)?
  • Python, wollen Float im exakten Format + -00.00 drucken
  • Python: Wert in Reichweite im Float-Array finden
  • Pad python schwimmt
  • 4 Solutions collect form web for “Reverse Engineer SQLAlchemy deklarative Klassendefinition aus der vorhandenen MySQL Datenbank?”

    Verwenden sqlautocode :

    Es ist ein flexibles Werkzeug, um ein Modell aus einer vorhandenen Datenbank zu autogenisieren.

    Dies ist ein etwas anderer Ansatz für SqlSoup , mit dem Sie Tabellen verwenden können, ohne sie explizit zu definieren. Auf der anderen Seite wird sqlalutocode tatsächlichen Python-Code generieren.

    Denken Sie daran, deklarative kann mit reflektierten Tabellen verwendet werden. Also, wenn Startzeit war nicht ein großes Problem, das Sie dies tun könnten:

     engine = create_engine('mysql://...') meta = MetaData() meta.reflect(bind=engine) for table in meta.tables.values(): print """ class %s(Base): __table__ = Table(%r, Base.metadata, autoload=True) """ % (table.name, table.name) 

    Anders als dieser Autocode ist wohl der Weg zu gehen.

    Jetzt (im Jahr 2015) möchten Sie wahrscheinlich https://pypi.python.org/pypi/sqlacodegen stattdessen verwenden!

    SqlSoup kann eine introspektive Zuordnung eines vorhandenen SQL-Schemas durchführen.

    Python ist die beste Programmiersprache der Welt.