SQLAlchemyでMEDIUMTEXTやLONGTEXT、TINYINTを使う方法
皆さんSQLAlchemy使ってますか?
PythonのORマッパーといえば、SQLAlchemyと言われるくらいSQLAlchemyは利用されているライブラリです。
そんな中、マニュアル読んでざっくり使ってるだけだとMySQLでINTEGERやVARCHARは使えるんだけど、TINYINTやMEDIUMTEXTといった型はどうやって使えるんだろう?そんな事になったことはありませんか?
ちなみに僕は2年くらいその状態でした。
MEDIUMTEXTはともかくとして、TINYINTは結構使うことがあると思います。 以下のような使い方で使えるようです。
from sqlalchemy import * from sqlalchemy.dialects.mysql import MEDIUMTEXT feed_article_body = Table( 'sample', meta, Column('id', Integer, primary_key=True, nullable=False), Column('name', String(255), nullable=False, index=True), Column('sampletext', MEDIUMTEXT, nullable=False), Column('created_at', DateTime, nullable=False, index=True), Column('updated_at', DateTime), mysql_row_format='DYNAMIC', )
雑にコードを組んでみました。 どうやら、以下のようにMySQL専用の型クラスがいくつか定義されているようですね。
[https://github.com/zzzeek/sqlalchemy/blob/master/lib/sqlalchemy/dialects/mysql/init.py:title]
MEDIUMTEXTやTINYINTのほかにもいろいろ使えそうな型があるので是非使ってみてください。
SQLAlchemyは使いやすいマッパーなので是非使ってみてくださいね。