On 10/14/2012 03:47 PM, Joshua Russo wrote:
I have project that I have been working and I was contemplating open
sourcing it but I ran into a little hang up. How to handle the
database authentication. The settings file obviously needs to be
included but I don't want to advertise the production database login.
How is this generally handled?
Also, are there procedures that need to be followed to "properly" open
source a project, or is it really just choosing a licence and dubbing
it so?
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
--
You received this message because you are subscribed to the Google Groups "Django
users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en.