如何在运行时给数据库名称并将所有更改迁移到它
How to give database name in runtime and migrate all changes to it
如何迁移名称为用户定义的数据库中的更改。我试过给
data = request.data
cursor = connection.cursor()
cursor.execute("create database " + data["database"])
DATABASES["default"]["NAME"] = data["database"]
call_command("makemigrations")
call_command("migrate")
但这不起作用。有什么办法吗?
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)
这段代码对我有用
如何迁移名称为用户定义的数据库中的更改。我试过给
data = request.data
cursor = connection.cursor()
cursor.execute("create database " + data["database"])
DATABASES["default"]["NAME"] = data["database"]
call_command("makemigrations")
call_command("migrate")
但这不起作用。有什么办法吗?
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)
这段代码对我有用