Hi Joshua,
You would have the same issue if you have a staging process where you go
from development, testing, and production. We handle that by having a
local_config.py that is not checked into the Mercurial repo. At the top
of settings.py, we have code that looks like this:
import local_settings as LOCAL_SETTINGS
######### The following variables are defined in local_settings.py ##############
DEBUG = LOCAL_SETTINGS.DEBUG
ADMINS = LOCAL_SETTINGS.ADMINS
DATABASES = {
'default': {
'ENGINE': LOCAL_SETTINGS.DATABASES['default']['ENGINE'],
'NAME': LOCAL_SETTINGS.DATABASES['default']['NAME'],
'USER': LOCAL_SETTINGS.DATABASES['default']['USER'],
'PASSWORD': LOCAL_SETTINGS.DATABASES['default']['PASSWORD'],
'HOST': LOCAL_SETTINGS.DATABASES['default']['HOST'],
'PORT': LOCAL_SETTINGS.DATABASES['default']['PORT'],
}
}
TIME_ZONE = LOCAL_SETTINGS.TIME_ZONE
SECRET_KEY = LOCAL_SETTINGS.SECRET_KEY
DEFAULT_FROM_EMAIL = LOCAL_SETTINGS.DEFAULT_FROM_EMAIL
EMAIL_HOST = LOCAL_SETTINGS.EMAIL_HOST
EMAIL_PORT = LOCAL_SETTINGS.EMAIL_PORT
EMAIL_HOST_USER = LOCAL_SETTINGS.EMAIL_HOST_USER
EMAIL_HOST_PASSWORD = LOCAL_SETTINGS.EMAIL_HOST_PASSWORD
EMAIL_USE_TLS = LOCAL_SETTINGS.EMAIL_USE_TLS
CONTACT_EMAIL = LOCAL_SETTINGS.CONTACT_EMAIL
INTERNAL_IPS = LOCAL_SETTINGS.INTERNAL_IPS
######### End of variables defined in local_settings.py ##############
local_settings.py can vary from instance of the application to another
and those sensitive things like passwords are never kept under revision
control. settings.py is consistent regardless of whether it's a
development, testing, or production deployment. If you find yourself
having to change things in settings.py if you deploy onto another
server, chances are it should be factored out into local_settings.py and
imported into settings.py as above.
--
Regards,
Clifford Ilkay
Dinamis
1419-3230 Yonge St.
Toronto, ON
Canada M4N 3P6
<
http://dinamis.com>
+1 416-410-3326