##仕様
・Python2.7.10
・DBは、ローカルはsqlite3、本番はpostgreSQL
・DjangoRESTFrameworkを使用
・あらかじめVirtualenvで仮想環境を作っている前提
##手順
1.cd [DjangoProjectのpath]
2.requirements.txtを生成。(Python版package.jsonとかgemfile的な)
pip freeze > requirements.txt
を叩けば一発でvirtualenvのpipに入ってるやつを持ってこれる。
僕の場合こんな感じ
dj-database-url==0.4.1
Django==1.9.7
django-filter==0.13.0
djangorestframework==3.3.3
psycopg2==2.6.1
3.vi Procfile
で以下を記入
web: python manage.py runserver 0.0.0.0:$PORT --noreload
4.setting.pyのDB部分を変更
import os
import dj_database_url
DATABASES = {'default': dj_database_url.config(default='postgres://localhost')}
if bool(os.environ.get('LOCAL_DEV', False)):
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'USER': '',
'PASSWORD': '',
'HOST': '',
'PORT': '',
}
}
(5.pycファイルをコミットしたくない人は.gitignoreを作る)
6.herokuにpush
git init
git add .
git commit -m "hogegggggge"
heroku create [アプリ名]
git push heroic master
すると
remote: raise ImproperlyConfigured("You're using the staticfiles app "
remote: django.core.exceptions.ImproperlyConfigured: You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path.
remote:
remote: ! Error while running '$ python manage.py collectstatic --noinput'.
remote: See traceback above for details.
remote:
remote: You may need to update application code to resolve this error.
remote: Or, you can disable collectstatic for this application:
remote:
remote: $ heroku config:set DISABLE_COLLECTSTATIC=1
remote:
remote: https://devcenter.heroku.com/articles/django-assets
と出たので、
setting.pyに以下を追記
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.9/howto/static-files/
#以下を追記しました
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'staticfiles')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(PROJECT_ROOT, 'static'),
)
#追記終わり
ついでに、
heroku config:set DISABLE_COLLECTSTATIC=1
を実行。
そして、git push heroku master
を実行。
Counting objects: 31, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (28/28), done.
Writing objects: 100% (31/31), 8.84 KiB | 0 bytes/s, done.
Total 31 (delta 10), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Python app detected
remote: -----> Installing python-2.7.11
remote: $ pip install -r requirements.txt
remote: Collecting dj-database-url==0.4.1 (from -r requirements.txt (line 1))
remote: Downloading dj-database-url-0.4.1.tar.gz
remote: Collecting Django==1.9.7 (from -r requirements.txt (line 2))
remote: Downloading Django-1.9.7-py2.py3-none-any.whl (6.6MB)
remote: Collecting django-filter==0.13.0 (from -r requirements.txt (line 3))
remote: Downloading django_filter-0.13.0-py2.py3-none-any.whl
remote: Collecting djangorestframework==3.3.3 (from -r requirements.txt (line 4))
remote: Downloading djangorestframework-3.3.3-py2.py3-none-any.whl (662kB)
remote: Collecting psycopg2==2.6.1 (from -r requirements.txt (line 5))
remote: Downloading psycopg2-2.6.1.tar.gz (371kB)
remote: Installing collected packages: dj-database-url, Django, django-filter, djangorestframework, psycopg2
remote: Running setup.py install for dj-database-url: started
remote: Running setup.py install for dj-database-url: finished with status 'done'
remote: Running setup.py install for psycopg2: started
remote: Running setup.py install for psycopg2: finished with status 'done'
remote: Successfully installed Django-1.9.7 dj-database-url-0.4.1 django-filter-0.13.0 djangorestframework-3.3.3 psycopg2-2.6.1
remote:
remote: -----> Discovering process types
remote: Procfile declares types -> web
remote:
remote: -----> Compressing...
remote: Done: 41.7M
remote: -----> Launching...
remote: Released v6
remote: https://cashe-api.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.
To https://git.heroku.com/cashe-api.git
* [new branch] master -> master
いけました。
あとは、
heroku run python manage.py migrate
で、heroku上のDBの初期設定
heroku open
でブラウザでみれます。
詳しくは、
公式ページを見てください。
##参考
http://source.hatenadiary.jp/entry/2013/02/05/173636
http://qiita.com/jtwp470/items/0034c85130928851ce72