Heroku試してみました

とりあえずこの記事に書いてある通りにやってみました。
Heroku で Flask + SQLAlchemy を使う - Twisted Mind
ただ、そのままではうまく行かなかった箇所があるためそれを以下に書きます。
環境はWindowsです。

まず、pip で psycopg2 をインストールしようとしたら以下のエラーが発生しました。

Error: pg_config executable not found.

とりあえず pip でインストールするのは諦めて、http://kapi.jp/kapi_blog/245を参考にして、以下のコマンドでインストール出来ました。(Python 2.7用です)

easy_install http://www.stickpeople.com/projects/python/win-psycopg/psycopg2-2.4.4.win32-py2.7-pg9.1.2-release.exe

次にデータベースの初期化で、 db.create_all() を実行したら以下のエラーが発生しました。

D:\work\heroku-flask-sqlalchemy>heroku run bin/python
Running bin/python attached to terminal... up, run.1
Python 2.7.2 (default, Oct 31 2011, 16:22:04)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from snowflake import db
>>> db.create_all()
Traceback (most recent call last):
  File "", line 1, in 
  File "/app/lib/python2.7/site-packages/flaskext/sqlalchemy.py", line 795, in create_all
    self._execute_for_all_tables(app, bind, 'create_all')
  File "/app/lib/python2.7/site-packages/flaskext/sqlalchemy.py", line 787, in _execute_for_all_tables
    op(bind=self.get_engine(app, bind), tables=tables)
  File "/app/lib/python2.7/site-packages/flaskext/sqlalchemy.py", line 736, in get_engine
    return connector.get_engine()
  File "/app/lib/python2.7/site-packages/flaskext/sqlalchemy.py", line 428, in get_engine
    self._sa.apply_driver_hacks(self._app, info, options)
  File "/app/lib/python2.7/site-packages/flaskext/sqlalchemy.py", line 679, in apply_driver_hacks
    if info.drivername == 'mysql':
AttributeError: 'NoneType' object has no attribute 'drivername'

これに関しては、検索したところ以下の情報がヒットしました。
AttributeError: 'NoneType' object has no attribute 'drivername' · Issue #1 · jamesward/flaskbars · GitHub
どうやらデータベースを使用する場合はまずアドオンを追加しなければいけないようです。
上記ページに書いてある通り、以下のコマンドを実行したら、データベースの初期化に成功しました。

heroku addons:add shared-database

以上です。

感想

HerokuのようなPaasどころか、レンタルサーバーを借りたこともなく、これまで自分のホームページを作ったこともないような私ですが、せっかくここまでWebアプリを作るための環境が整っているので、なにかアプリをつくってみたいと思いました。