以前の記事でdeclarative_baseを使ってテーブルの定義をしてマッピングするとき、
command.sqlでcreate tableをしたが、pythonからcreate tableも出来たのでメモ。
# 今回必要な分だけimport from sqlalchemy import Column, Integer, create_engine, MetaData, DECIMAL, DATETIME from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() engine = create_engin("mysql://[user]:[passwd]@[host]/[dbname]",\ encoding="utf-8", echo=False) metadata = MetaData(engine) class User(Base): __tablename__ = "user" __table_args__ = {"mysql_engine": "InnoDB"} id = Column("id", Integer, primary_key=True, autoincrement=True) name = Column("name", String(255)) created = Column("created", DATETIME, default=datetime.now, nullable=False) modified = Column("modified", DATETIME, default=datetime.now, nullable=False) def __init__(self, name): self.name = name now = datetime.now() self.created = now self.modified = now # create table Base.metadata.create_all(engine)
以上。