Django将表迁移到新数据库

use*_*306 4 python mysql database django

我最初有一个带有单个应用程序的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',
    }    
}
Run Code Online (Sandbox Code Playgroud)

我希望应用程序(例如app1)从默认值移动到db2.路由器已经知道将app1指定给db2但是正在运行的迁移什么都不做.有任何想法吗?

use*_*306 6

@ knbk的答案最终是正确的,除了解决方案涉及一个额外的步骤.

1. python manage.py migrate auth --database=db2
2. python manage.py migrate app1 --database=db2
Run Code Online (Sandbox Code Playgroud)