Django将表迁移到新数据库

时间:2016-11-16 17:01:53

标签: python mysql django database

我最初有一个带有单个应用程序的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但是正在运行的迁移什么都不做。有什么想法吗?

1 个答案:

答案 0 :(得分:5)

@ knbk的回答最终是正确的,除了解决方案还需要一个额外的步骤。

1. python manage.py migrate auth --database=db2
2. python manage.py migrate app1 --database=db2