nginxとpythonとpyramid MySQLの設定
サムライファクトリーの平成コンビがお送りするWebサービスダイナシ
画像にコメントをつけて、ぜひ楽しんでください。
前回まででsqliteを使ったサンプルアプリケーションの起動までを紹介しました。
sqliteは構築や扱いが簡単で便利なデータベースですが、
今回はMySQLを利用するように変更したいと思います。

前回までのエントリー
Pyramidのインストールまで
サーバーの起動まで

MySQLサーバーのインストールは他のサイトか過去のエントリーを参考にしてみてください。
NginxとuwsgiとDjango
※今回はmysql-pythonをpipで直接インストールしません。

MySQLのサーバーが起動されている状態でデータベースとユーザーが登録されている状態にします。
データベース名:sample
ユーザー名:user
パスワード:user_pass

用意が出来たら下記コマンドを実行するとMySQLに接続出来ると思います。

mysql -u user -puser_pass sample


development.iniを開き、sqliteの接続先の設定をmysqlに変更します。

#sqliteの接続設定
#sqlalchemy.url = sqlite:///%(here)s/sample.db

#mysqlの接続設定
sqlalchemy.url = mysql://user:user_pass@localhost:3306/sample?charset=utf8&use_unicode=1
sqlalchemy.pool_recycle = 3600


直接pipでmysqlドライバーをインストールせず前回同様にsetup.pyに記述します。

requires = [
'pyramid',
'SQLAlchemy',
'transaction',
'pyramid_tm',
'pyramid_debugtoolbar',
'zope.sqlalchemy',
'waitress',
'mysql-python', <-- pysqliteから変更
]


sampleプロジェクトのmodelクラスがTEXT型のunique設定になっているのでMySQLでサポートされていません。
sample/sample/models.pyを編集してStringに変更するか、unique属性を削除してください。

from sqlalchemy import (
Column,
Integer,
String, <-- TextからStringに変更
)

name = Column(String(200), unique=True) <-- TextからString(200)に変更


せっかくsetup.pyに必要なライブラリーを記述したので一度pythonbrewの仮想環境を再作成したいと思います。

deactivate
rmvirtualenv pyramid
mkvirtualenv pyramid
python setup.py develop
populate_sample development.ini

※2012/3/24追記
Pyramid1.3正式版からコマンドがpopulate_sampleからinitialize_sample_dbに変更されました。

仮想環境の構築からデータベースの設定までコマンドだけで簡単に用意できるようになりました。
populate.pyに初期データの登録なども追加しておく事で、途中から開発者が追加された場合でもスムーズに作業が開始できます。

フルスタックなフレームワークではないですが、開発に必要な基本的機能が備わっているので小規模なサービスを作るには非常に便利だと思います。

2012/03/11 17:09 | Comments(0) | プログラム

コメント

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



<<nginxとpythonとpyramid nginxとuwsgi | HOME | nginxとpythonとpyramid 起動まで>>