【发布时间】:2017-03-30 23:56:02
【问题描述】:
我最初有一个带有单个应用程序的 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,但运行迁移什么也没做。有什么想法吗?
【问题讨论】:
-
您是否使用
--database=db2标志运行manage.py migrate? -
当我尝试我得到以下错误:
RuntimeError: Error creating new content types. Please make sure contenttypes is migrated before trying to migrate apps individually.
标签: python mysql django database