Merge pull request #7443 from saurabh6790/read_from_secondary
fix: naming and provision to use same db credentials for secondary
This commit is contained in:
commit
6403ffa4df
1 changed files with 15 additions and 9 deletions
|
|
@ -187,15 +187,20 @@ def connect(site=None, db_name=None):
|
|||
local.db = get_db(user=db_name or local.conf.db_name)
|
||||
set_user("Administrator")
|
||||
|
||||
def connect_read_only():
|
||||
def connect_replica():
|
||||
from frappe.database import get_db
|
||||
user = local.conf.db_name
|
||||
password = local.conf.db_password
|
||||
|
||||
local.read_only_db = get_db(host=local.conf.slave_host, user=local.conf.slave_db_name,
|
||||
password=local.conf.slave_db_password)
|
||||
if local.conf.different_credentials_for_replica:
|
||||
user = local.conf.replica_db_name
|
||||
password = local.conf.replica_db_password
|
||||
|
||||
local.replica_db = get_db(host=local.conf.replica_host, user=user, password=password)
|
||||
|
||||
# swap db connections
|
||||
local.master_db = local.db
|
||||
local.db = local.read_only_db
|
||||
local.primary_db = local.db
|
||||
local.db = local.replica_db
|
||||
|
||||
def get_site_config(sites_path=None, site_path=None):
|
||||
"""Returns `site_config.json` combined with `sites/common_site_config.json`.
|
||||
|
|
@ -495,16 +500,17 @@ def whitelist(allow_guest=False, xss_safe=False):
|
|||
def read_only():
|
||||
def innfn(fn):
|
||||
def wrapper_fn(*args, **kwargs):
|
||||
if conf.use_slave_for_read_only:
|
||||
connect_read_only()
|
||||
if conf.read_from_replica:
|
||||
connect_replica()
|
||||
|
||||
try:
|
||||
retval = fn(*args, **get_newargs(fn, kwargs))
|
||||
except:
|
||||
raise
|
||||
finally:
|
||||
if local and hasattr(local, 'master_db'):
|
||||
if local and hasattr(local, 'primary_db'):
|
||||
local.db.close()
|
||||
local.db = local.master_db
|
||||
local.db = local.primary_db
|
||||
|
||||
return retval
|
||||
return wrapper_fn
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue