前回は sqlalchemy-migrate を使ってみたから、今回は同様に Python のマイグレーションツールの Alembic を使ってみる。 Alembic もバックエンドに SQLAlchemy を使っているらしい。 Alembic を pip (PyPI) からインストールする。 インストールすると “alembic” コマンドが使えるようになる。 # pip install alembic $ pip freeze Mako==0.7.3 MarkupSafe==0.15 SQLAlchemy==0.8.0 alembic==0.4.2 wsgiref==0.1.2 $ alembic --help usage: alembic [-h] [-c CONFIG] [-n NAME] …(snip)… MySQL を使うので MySQLdb (MySQL-python) もイ
以前 LVS (IPVS) で L4 ロードバランサを試したので、今回は HAProxy で L7 ロードバランサを試してみる。 HAProxy のホストをセットアップする まずは HAProxy をインストールする。 $ sudo yum -y install haproxy 次に HAProxy の設定を用意する。 概ねサンプルのコンフィグに近くなっている。 *:80 への HTTP リクエストを 192.168.33.{101,102} に振り分ける。 $ sudo cp /etc/haproxy/haproxy.cfg{,.orig} $ cat << EOS | sudo tee /etc/haproxy/haproxy.cfg > /dev/null $ cat /etc/haproxy/haproxy.cfg global chroot /var/lib/haproxy da
カバレッジというのはテストがテスト対象のコードをどれだけ網羅しているかをコード全体に対する割合で表したものをいう。 この数値を確認することで、そのコードがどれだけテストされているのかを把握できる。 カバレッジと一口に言っても C0 とか C1 とか色々あるみたいだけど、今回は特に気にしない。 Python には coverage というライブラリがあり、これでカバレッジを計測できる。 Nose はユニットテスト用のライブラリで、これは coverage と組み合わせて使うことができる。 例として Nose を使ってユニットテストを書いているプロジェクトがあるので、それを使う。 プロジェクトを GitHub からチェックアウトする。 $ git clone https://github.com/momijiame/cmonkey.git $ cd cmonkey プロジェクトで使うライブラリ
PyPI に登録されていないパッケージをインストールするとき、毎回リポジトリをクローンして python setup.py install するの面倒だなー、と思っていたんだけど、どうやら pip は git のリポジトリから直接パッケージをインストールできるらしい。 $ pip install git+https://github.com/momijiame/csapiclient.git Downloading/unpacking git+https://github.com/momijiame/csapiclient.git Cloning https://github.com/momijiame/csapiclient.git to /var/folders/1h/8_tv3ss5651glrjnbz9w0t340000gn/T/pip-Sh92Mk-build Running s
Python には PEP8 という有名なコードスタイルガイドラインがある。 とはいえ、それをただ読むだけでは、正しい PEP8 のスタイルが身につくのには多大な時間がかかると思う。 コードスタイルに準拠しているか否かはツールに教えてもらうのが手っ取り早い。 ツールにはコードスタイルガイドラインと同じ名前の pep8 というコマンドがある。 # pip install pep8 $ pep8 --version 1.4 この pep8 を使って、準拠していないソースコードのファイルをチェックしてみる。 チェック対象のソースコードは以下。 #!/usr/bin/env python # -*- coding: utf-8 -*- def foo(): msgs=['Hello','World!!'] print ','.join(msgs) if __name__ == '__main__'
SQLAlchemy は pip でインストールしておく。 $ pip install SQLAlchemy 今回例にしたのはユーザとメールアドレスの関係。 One to Many (1 : 多) from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.schema import Column, ForeignKey from sqlalchemy.types import Integer, String from sqlalchemy.orm import relation from sqlalchemy.engine import create_engine from sqlalchemy.orm.session import sessionmaker Base = declarative_base
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く