Как дать имя базы данных во время выполнения и перенести все изменения в нее - PullRequest
0 голосов
/ 11 января 2019

Как перенести изменения в базу данных, чье имя определяется пользователем. я пытался дать

data = request.data
cursor = connection.cursor()
cursor.execute("create database " + data["database"])
DATABASES["default"]["NAME"] = data["database"]
call_command("makemigrations")
call_command("migrate")

но это не работает. есть ли способ сделать это?

1 Ответ

0 голосов
/ 14 января 2019
DATABASES.update({'users1': {
                'ENGINE': 'django.db.backends.mysql',
                'NAME': data["database"],
                'USER': 'root',
                'PASSWORD': 'root',
                'HOST': 'localhost',
                'PORT': '3306',
                'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0,
                'OPTIONS': {}, 'TIME_ZONE': None,
                'TEST': {'CHARSET': None, 'COLLATION': None, 'NAME': None, 'MIRROR': None
            }
            }})
            call_command("makemigrations")
            call_command('migrate', database='users1', interactive=False, skip_checks=True)

Этот код работал для меня

...