2016-05-08 11 views
0

データベースダンプを読み込もうとしていますが、スキーマを定義しておく必要があります。SQLAlchemyからテーブル定義クラスをバニラに変換する

残念ながら(?)、スキーマはSQLAlchemyを使用して構築されました。テーブルの定義は次のような実装されています

class Customer(Base): 
    """Sqlalchemy model.""" 
    __tablename__ = "customer" 

    id = Column(Integer, primary_key=True, autoincrement=False) 

    name = Column('name', String(64), nullable=False) 
    given_name = Column('given_name', String(32), nullable=True) 
    family_name = Column('family_name', String(32), nullable=True) 

などなど

簡単にMySQLのテーブル定義に戻ってこれを変換する方法はありますか?私はそうする何かを見つけることができません。私はスケーラブルな方法でこれを行うことができるようにしたいと思います、私はデータベースの移行を行うたびに手でそれをすべて入力しないでください。私はこれを試した最初の人ではないとも考えています。 documentationから

答えて

1

from sqlalchemy.schema import CreateTable 
print CreateTable(Customer.__table__).compile(engine) 
+0

は、それがLONGTEXTの種類を扱うことができないように見えます。 :( 'CompileError:(テーブル 'source'、列 'html_source'):コンパイラ)は ' –

+0

それはあなたがあなたの特定のエンジンでコンパイルする場合は、代わりにGenericTypeCompiler''のMySQL固有のコンパイラを使用する必要がありますする必要があり@MonicaHeddneckが、私は信じています。\ – univerio

+0

ああ! 'SQLAlchemyの輸入create_engine'から ' mysql_engine = sqlalchemy.schemaからcreate_engine( 'mysql://') ' 'をインポートするCreateTable' 'print CreateTable(顧客.__テーブル__)。コンパイル(mysql_engine)' –

関連する問題