petitviolet_blog

@petitviolet blog

sqlalchemyでcreate tableする

以前の記事で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)

以上。