diff --git a/lms/envs/aws_migrate.py b/lms/envs/aws_migrate.py index 726b09874c..a8617d2fa0 100644 --- a/lms/envs/aws_migrate.py +++ b/lms/envs/aws_migrate.py @@ -1,6 +1,6 @@ """ -A Django settings file for use on AWS while running -database migrations, since we don't want to normally run the +A Django settings file for use on AWS while running +database migrations, since we don't want to normally run the LMS with enough privileges to modify the database schema. """ @@ -13,12 +13,18 @@ from .aws import * import os from django.core.exceptions import ImproperlyConfigured -USER = os.environ.get('DB_MIGRATION_USER', 'root') -PASSWORD = os.environ.get('DB_MIGRATION_PASS', None) +DB_OVERRIDES = dict( + PASSWORD=os.environ.get('DB_MIGRATION_PASS', None), + ENGINE=os.environ.get('DB_MIGRATION_ENGINE', DATABASES['default']['ENGINE']), + USER=os.environ.get('DB_MIGRATION_USER', DATABASES['default']['USER']), + NAME=os.environ.get('DB_MIGRATION_NAME', DATABASES['default']['NAME']), + HOST=os.environ.get('DB_MIGRATION_HOST', DATABASES['default']['HOST']), + PORT=os.environ.get('DB_MIGRATION_PORT', DATABASES['default']['PORT']), +) -if not PASSWORD: - raise ImproperlyConfigured("No database password was provided for running " - "migrations. This is fatal.") +if DB_OVERRIDES['PASSWORD'] is None: + raise ImproperlyConfigured("No database password was provided for running " + "migrations. This is fatal.") -DATABASES['default']['USER'] = USER -DATABASES['default']['PASSWORD'] = PASSWORD +for override, value in DB_OVERRIDES.iteritems(): + DATABASES['default'][override] = value