【发布时间】:2017-06-16 11:33:24
【问题描述】:
我在我的项目中使用了 3 个数据库:
DATABASES = {
'default': {
(postgres, read, write)...
},
'admission_db': {
(postgres, read, write)...
},
'journals_db': {
(mysql, read only)...
}
}
DATABASE_ROUTERS = [
'main.lib.DbRouter.DbRouter',
]
写了 db 路由器:
class DbRouter:
...
def allow_migrate(self, db, app_label, model=None, **hints):
if db == 'admission_db':
if model and model._meta.app_label == 'admission':
return True
return app_label == 'admission'
elif db == 'journals_db':
return False
return None
当我发出迁移命令时
python manage.py migrate admission --database admission_db
它可以正常迁移,但是当我尝试制作时
python manage.py migrate,
它抛出
django.db.utils.OperationalError: no such table: admission_educationform
因此,我可以在其他应用程序上进行 make 迁移。 (蟒蛇3.5.2,django 1.10.5) 什么可能导致问题?
【问题讨论】:
-
$ python manage.py migrate --fake解决了这个问题,我可以迁移其他应用程序中的更改,但我希望有另一种解决方案,使$ python manage.py migrate迁移所有没有数据库和应用程序选项的应用程序