I have two databases one for development and other for the production, i set two dbs in my settings, but how can i alternate between the two dbs. Now i use method using in all objects, but i dont know if it`sthe best form.
settings.py
DATABASES = {
'default': {
'ENGINE': os.getenv('DB_PRODUCTION_ENGINE', 'change-me'),
'NAME': os.getenv('POSTGRES_PRODUCTION_DB', 'change-me'),
'USER': os.getenv('POSTGRES_PRODUCTION_DB_USER', 'change-me'),
'PASSWORD': os.getenv('POSTGRES_PRODUCTION_DB_PASSWORD', 'change-me'),
'HOST': os.getenv('POSTGRES_PRODUCTION_HOST', 'change-me'),
'PORT': os.getenv('POSTGRES_PRODUCTION_PORT', 'change-me'),
},
'development': {
'ENGINE': os.getenv('DB_DEVELOPMENT_ENGINE', 'change-me'),
'NAME': os.getenv('POSTGRES_DEVELOPMENT_DB', 'change-me'),
'USER': os.getenv('POSTGRES_DEVELOPMENT_DB_USER', 'change-me'),
'PASSWORD': os.getenv('POSTGRES_DEVELOPMENT_DB_PASSWORD', 'change-me'),
'HOST': os.getenv('POSTGRES_DEVELOPMENT_HOST', 'change-me'),
'PORT': os.getenv('POSTGRES_DEVELOPMENT_PORT', 'change-me'),
}
}
example queryset
def get_database_name(request):
environment = request.session.get('environment', 'default')
return environment
using = get_database_name(request)
model = Model.objects.using(using)
You can switch between the two dbs via the settings.py file. Locally DEBUG is set to true and in production that is set to false. With this in mind: