我最初有一个带有单个应用程序的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但是正在运行的迁移什么都不做。有什么想法吗?
答案 0 :(得分:5)
@ knbk的回答最终是正确的,除了解决方案还需要一个额外的步骤。
1. python manage.py migrate auth --database=db2
2. python manage.py migrate app1 --database=db2