This git repository helps you get up and running quickly w/ a Django
installation on OpenShift Online. The Django project name used in this repo
is 'localbosc' but you can feel free to change it. Right now the
backend is sqlite3 and the database runtime is found in
$OPENSHIFT_DATA_DIR/db.sqlite3
.
Before you push this app for the first time, you will need to change
the Django admin password.
Then, when you first push this
application to the cloud instance, the sqlite database is copied from
wsgi/localbosc/db.sqlite3
with your newly changed login
credentials. Other than the password change, this is the stock
database that is created when python manage.py syncdb
is run with
only the admin app installed.
On subsequent pushes, a python manage.py syncdb
is executed to make
sure that any models you added are created in the DB. If you do
anything that requires an alter table, you could add the alter
statements in GIT_ROOT/.openshift/action_hooks/alter.sql
and then use
GIT_ROOT/.openshift/action_hooks/deploy
to execute that script (make
sure to back up your database w/ rhc app snapshot save
first :) )
You can also turn on the DEBUG mode for Django application using the
rhc env set DEBUG=True --app APP_NAME
. If you do this, you'll get
nicely formatted error pages in browser for HTTP 500 errors.
Do not forget to turn this environment variable off and fully restart the application when you finish:
$ rhc env unset DEBUG
$ rhc app stop && rhc app start
Create an account at https://www.openshift.com
Install the RHC client tools if you have not already done so:
sudo gem install rhc
rhc setup
Select the version of python (2.7 or 3.3) and create a application
rhc app create django python-$VERSION
Add this upstream repo
cd django
git remote add upstream -m master git://github.com/alfresanc/django-example.git
git pull -s recursive -X theirs upstream master
Then push the repo upstream
git push
Now, you have to create admin account, so you can setup your Django instance.
That's it. You can now checkout your application at:
http://django-$yournamespace.rhcloud.com
Use rhc ssh
to log into python gear and run this command:
python $OPENSHIFT_REPO_DIR/wsgi/localbosc/manage.py createsuperuser
You should be now able to login at:
http://django-$yournamespace.rhcloud.com/admin/
Added command to upgrade Django, to be executed while the application is stopped before the deploy step: In: action_hooks/build
$ pip install -U Django
(This projects has only been tested with the Python 2.7 cartridge)