私は既存のmysqlデータベースに約50のテーブルを含んでいます。各テーブルの宣言型のスタイルSQLAlchemyのクラス(as shown here)は、各テーブルの宣言型スタイルでPythonのクラスを生成します、私はmysqlデータベースに対して実行できるツール/スクリプト/コマンドがある。むしろ手のコードよりもリバースエンジニアSQLAlchemy既存のMySQLデータベースの宣言クラス定義?
データベースに?
次のように(理想的にはすべての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ジェネレータを避けるべき理由の良い例です:)。 –
なぜでしょうか? – zzzeek