我有一个Django应用程序connectinig到2数据库。 在Django中,这两个数据库都被视为PostgreSQL数据库,但其中一个不是PostgreSQL(而是使用PostgreSQL二进制协议,因此它使用相同的驱动程序(CockroachDB)。
当前看来,在测试运行期间,Django尝试在两个数据库上运行迁移。
如何避免这种情况?我仍然需要在测试过程中可以访问数据库,但是不需要运行迁移(因为它目前不兼容,并且迁移是从Django外部运行的)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
...
},
'livedb': {
'ENGINE': 'django.db.backends.postgresql',
...
}
}
答案 0 :(得分:2)
您可以添加防止迁移的database router。假设type User{
name: String!
email: String! @unique
password: String!
applications: [Application!]!
qualifications: [Qualification!]!
employer: Employer
accessRight: AccessRight
}
是您不想迁移的数据库,则它看起来像这样:
livedb
然后配置该路由器:
class LiveDBRouter:
def allow_migrate(self, db, app_label, model_name=None, **hints):
"""
Do not allow migrations on livedb.
"""
return db != 'livedb'