So basically i decided to write this tutorial based on this blog and the official tutorial.
The main difference (apart from putting the best of the 2 together) is that this tutorial covers django deployment to heroku assuming that you already have a GIT repository with your remote references (bitbucket , github , etc).
By doing this tutorial the heroku remote reference will be added automatically to your .git , so you will have 2 remote references and you can choose where you want to push to. You can then git push origin master or git push heroku master.
The above links explain in detail the meaning of every actions, i am merely stating the commands i used in my case (that hopefully will be yours) to deploy my app.
- Heroku account
- Heroku command line client
- Python 2.7, Django 1.4, virtualenv, pip , git
- Must use pip to manage dependencies with a requirements.txt file
I am using Ubuntu 12.04 LTS. I have all the dependencies asked by installing them through this tutorial . Make sure you have Django installed in your virtualenv using pip install Django psycopg2
This example uses a repository for one of the projects i was working on, change it according to your needs.
1 . git clone https://bitbucket.org/psychok7/human-computer-interaction.git
2 . cd human-computer-interaction/
3 . virtualenv venv --distribute #you need to create because its not on .git
4 . source venv/bin/activate
5 . pip freeze > requirements.txt #add the rest of the dependencies by hand like for example Django==1.4 , psycopg2==2.4.5 if it doesn't create automatically
#install dependencies in case you need them
pip install -r requirements.txt
#add the remote references only if necessary (for example cloning in another computer) using
git remote rm heroku
git remote add heroku [email protected]:newname.git
#Exclude unnecessary env files from git by creating a .gitignore file and adding env and *.pyc on it
6 . git add .
7 . git commit -m "my django app" #commit to git
8 . heroku create --stack cedar
9 . git push heroku master
#if you get errors check the log for missing dependencies, etc. then add the dependencies to requirements.txt
10 . heroku run python fastparqsite/manage.py syncdb
#everything should be up and running now
1 . heroku pg:reset SHARED_DATABASE #delete remote database
2 . chmod 755 fastparqsite/manage.py (and commit it) #if you get a permission denied error this might be useful
3 . pip install -r requirements.txt #install dependencies on local machines after cloning
4 . use guarnicon webserver instead of the default one in heroku (guarnicon is better)
5 . Make sure your settings.py has its relative paths properly set, see this example if not you might run into errors.