Small utilities for making Zappa deployments slightly easier for Django applications.
This project was inspired by Edgar Roman's Zappa Django Guide.
Install via pip
:
$ pip install zappa-django-utils
Add to your installed apps:
INSTALLED_APPS += ('zappa_django_utils',)
ZDU includes the ability to use s3sqlite
, an S3-synced SQLite database as a Django database engine.
This will cause problems for applications with high loads of concurrent writes, but it scales very well for high-read applications that don't have concurrent writes (like CMSes), and it's orders of magnitude cheaper than AWS RDS.
To use this, in your Django project's settings.py
file, add the following:
DATABASES = {
'default': {
'ENGINE': 'zappa_django_utils.db.backends.s3sqlite',
'NAME': 'sqlite.db',
'BUCKET': 'your-db-bucket'
}
}
And.. that's it!
Once you have your RDS set up, your VPC/Subnet/Security Groups set up, and your DATABASES
setting set up, you can create the database with:
$ zappa manage <stage> create_pg_db
Then you're ready to python manage.py makemigrations
and zappa update; zappa manage migrate
!
You'll probably need a default user to manage your application with, so you can now:
$ zappa manage <stage> create_admin_user
Now log in with the information that gets returned and immediately change the admin user's email and password.
You can create a Postgres schema with:
$ zappa manage create_pg_schema
and drop it with:
$ zappa manage drop_pg_schema
(c) 2017, Rich Jones, MIT License