如何在运行时提供数据库名称并将所有更改迁移到该数据库

时间:2019-01-11 06:10:53

标签: django django-rest-framework django-migrations django-database django-datatable

如何在用户定义名称的数据库中迁移更改。我尝试给

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 :(得分:0)

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)

此代码对我有用