2013年7月27日土曜日

SQLAlchemy でテーブルを作成する。

テーブルを作成する場合、当該テーブルが既に存在している場合は削除した上で作成する、といった分岐処理が必要になる。 SQLAlchemy は、drop および create 関数に checkfirst 属性を有しており、エラーの場合は、当該処理を実行しないようにすることができる。
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String

Base = declarative_base()

class TT_USER(Base):
    __tablename__ = "TT_USER"

    id = Column(Integer, primary_key = True)
    name = Column(String(20))

if __name__ == '__main__':
    from sqlalchemy import create_engine
    from sqlalchemy.orm import sessionmaker

    mysql_db = create_engine(対象データベースへのURL)
    TT_USER.__table__.drop(mysql_db. checkfirst = True)
    TT_USER.__table__.create(mysql_db)

上記の場合、drop 時にテーブルが存在していない場合は、drop を実行しない。

0 件のコメント:

コメントを投稿