我有一个Django应用程序连接到2数据库。在Django看来,它们都是PostgreSQL数据库,但是其中一个不是PostgreSQL (而是使用PostgreSQL二进制协议,所以它使用相同的驱动程序(CockroachDB)。
目前看来,在测试运行期间,Django尝试在两个数据库上运行迁移。
我该如何避免这种情况呢?我仍然需要数据库在测试期间是可访问的,但是不能运行迁移(因为它现在不兼容,并且迁移是在Django之外运行的)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
...
},
'livedb': {
'ENGINE': 'django.db.backends.postgresql',
...
}
}发布于 2018-09-10 19:07:55
您可以添加阻止迁移的database router。假设livedb是您不想迁移的数据库,它将如下所示:
class LiveDBRouter:
def allow_migrate(self, db, app_label, model_name=None, **hints):
"""
Do not allow migrations on livedb.
"""
return db != 'livedb'然后配置该路由器:
DATABASE_ROUTERS = ['path.to.LiveDBRouter']https://stackoverflow.com/questions/52256107
复制相似问题