ほとんど以下の参考URLを丸パクリしてます。
以前herokuを初めて触ったときの、自分用の備忘録。
参考URL:http://momoto.github.io/blog/2013/08/16/deploying-django-1-dot-5-2-on-heroku/
django-toolbeltのインストール
ここでいきなりつまずく。
(venv) $ pip install django-toolbelt
Error: pg_config executable not found.
pg_configとはなんだ?
調べてみたところ、インストールしたPostgreSQLのバージョン情報が書いてあるファイルらしい。
参考:
というわけで、homebrewでPostgreSQLをインストールする。
参考:http://qiita.com/youcune/items/5b783f7fde45d0fd4b35
$ brew install postgresql
これで無事突破。
Djangoプロジェクトを作成する
pip freezeってなに?
(venv) $ pip freeze > requirements.txt
参考URL:http://tdoc.info/blog/2014/01/15/pip.html>freezeはファイルに標準出力で書き出して、あとでinstallやbundleに使えます。
とのこと。
Herokuへ展開する
手順をこなし、git push heroku master したものの、アプリケーションエラーとなってしまう。
ログを調べてみる。
(venv)$heroku logs
...
2014-03-09T00:36:57.628732+00:00 app[web.1]: ImportError: No module named side_dish.wsgi
う〜ん。side_dish.wsgiがないって言ってるみたい……
なんか環境構築段階でまちがえたのかもしれない。
っていうわけで、いったん最初からやり直し。
今度は公式ドキュメントみながらやってみる。
公式ドキュメント:https://devcenter.heroku.com/articles/getting-started-with-django
するとこんな注意書きが。
Don't forget the . at the end. This tells Django to put the extract the into the current directory, instead of putting it in a new subdirectory.
(venv)$ django-admin.py startproject hellodjango .
これでとりあえず動いてるとこまで確認完了。
やっぱり英語でもめんどくさがらないで、公式ドキュメントを読むべきだ。
色々いじってみる
上記までやってしばらくおいといたら、herokuのコマンドが通らなくなった。
(venv)$ heroku ps
! No app specified.
! Run this command from an app folder or specify which app to use with --app APP.
どうもAPPの名前を指定して実行しろということらしい。
(venv)$ heroku open --app radiant-depths-6246
Opening radiant-depths-6246... done
APP名を変更したい
参考URL:https://devcenter.heroku.com/articles/renaming-apps#manually_updating_a_git_remote
$ heroku apps:rename newname
これでAPPはリネームされるが自動でCheckOutが走るもよう。
以下のコマンドなら、CheckOutされない。
$ heroku apps:rename newname --app oldname
gitで使用するリモートURLも以下のコマンドで変更しておく。
$ git remote rm heroku
$ heroku git:remote -a newname
コードの動作確認について
heroku上のコンソールで、色々試したくなるかもしれないが $ heroku run console
とかでずっとherokuにつなぎっぱなしにしない方がよい。
その間も利用時間に換算されてしまうので、無料利用時間の許容(750時間)を超えてしまう恐れがあるので要注意。
参考URL:http://blog.mah-lab.com/2013/05/16/heroku-commons-16/
ローカル環境のDB設定について
ローカル環境(開発環境)ではsqlite使いたい。
環境変数から識別すれば、heroku上とローカル環境でDBを切り替えることが可能。
$ export LOCAL_ENV=LOCAL_ENV
参考URLのsettings.pyのを参考にして、DB環境を設定し直す。
さっき追加した、環境変数が存在したらローカル環境と判別して、データベースをsqlite3としている。