使用Django根据查询类型(读、写、更新)将数据库调用重定向到不同的db url

zazmityj  于 2023-06-25  发布在  Go
关注(0)|答案(1)|浏览(93)

在一个现有的项目中,我如何实现一个方法来重定向不同的数据库(写,更新和读)而不修改现有的Django查询?
如果我有两个问题:

  1. MyModel.objects.get(name = "abc")
  2. MyModel.objects.create(name = "xyz")
    数据库配置为:
DATABASES = {
       'read_db': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'read_db',
        'USER': 'read_db',
        'PASSWORD': 'read_db',
        'HOST': '',
        'PORT': '',
    },
    'write_db': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'write_db',
        'USER': 'write_db',
        'PASSWORD': 'write_db',
        'HOST': '',
        'PORT': '',
    },
    'update_db': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'update_db',
        'USER': 'update_db',
        'PASSWORD': 'update_db',
        'HOST': '',
        'PORT': '',
    }
}

希望为查询1调用read_db,为查询2调用write_db

y53ybaqx

y53ybaqx1#

看看Django的数据库路由器。您可以指定db_for_readdb_for_write,而无需更改查询。

相关问题