我最初有一个带有单个应用程序的 django 项目,所有模型都在该应用程序中定义。该项目在启动时仅使用默认数据库。它现在已经成为一个笨重的应用程序,我正试图将其分解成更小的应用程序。这样做,我想为不同的应用程序使用不同的数据库。我在 settings.py 文件中设置了新的数据库和路由器。但是,我对如何将现有表迁移到新数据库感到困惑。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db_name',
'USER': 'db_user_name',
'PASSWORD': 'password',
'HOST': 'hostname',
'PORT': '3306',
},
'db2': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db_name2',
'USER': 'db_user_name2',
'PASSWORD': 'password2',
'HOST': 'hostname2',
'PORT': '3306',
}
}
我希望将应用程序(例如 app1)从默认设置移动到 db2。路由器已经知道将 app1 指定为 db2,但是运行迁移什么也不做。有什么想法吗?
最佳答案
@knbk 的回答最终是正确的,只是该解决方案涉及一个额外的步骤。
1. python manage.py migrate auth --database=db2
2. python manage.py migrate app1 --database=db2
关于python - Django 将表迁移到新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40637991/