首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止在特定数据库上运行测试迁移

防止在特定数据库上运行测试迁移
EN

Stack Overflow用户
提问于 2018-09-10 18:45:13
回答 1查看 97关注 0票数 1

我有一个Django应用程序连接到2数据库。在Django看来,它们都是PostgreSQL数据库,但是其中一个不是PostgreSQL (而是使用PostgreSQL二进制协议,所以它使用相同的驱动程序(CockroachDB)。

目前看来,在测试运行期间,Django尝试在两个数据库上运行迁移。

我该如何避免这种情况呢?我仍然需要数据库在测试期间是可访问的,但是不能运行迁移(因为它现在不兼容,并且迁移是在Django之外运行的)

代码语言:javascript
复制
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',

         ...
    },
    'livedb': {
        'ENGINE': 'django.db.backends.postgresql',
         ...
    }
}
EN

回答 1

Stack Overflow用户

发布于 2018-09-10 19:07:55

您可以添加阻止迁移的database router。假设livedb是您不想迁移的数据库,它将如下所示:

代码语言:javascript
复制
class LiveDBRouter:

    def allow_migrate(self, db, app_label, model_name=None, **hints):
        """
        Do not allow migrations on livedb.
        """
        return db != 'livedb'

然后配置该路由器:

代码语言:javascript
复制
DATABASE_ROUTERS = ['path.to.LiveDBRouter']
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52256107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档