chore: simplify frappe.connect & require explicit site initialization

This commit is contained in:
David Arnold 2024-01-17 16:53:30 +01:00
parent afef4b8f30
commit d87092936f
No known key found for this signature in database
GPG key ID: AB15A6AF1101390D
5 changed files with 16 additions and 15 deletions

View file

@ -274,20 +274,14 @@ def init(site: str, sites_path: str = ".", new_site: bool = False, force=False)
local.conf.db_user = local.conf.db_name
def connect(
site: str | None = None, db_name: str | None = None, set_admin_as_user: bool = True
) -> None:
def connect(db_name: str | None = None, set_admin_as_user: bool = True) -> None:
"""Connect to site database instance.
:param site: If site is given, calls `frappe.init`.
:param db_name: Optional. Will use from `site_config.json`.
:param set_admin_as_user: Set Administrator as current user.
"""
from frappe.database import get_db
if site:
init(site)
local.db = get_db(
host=local.conf.db_host,
port=local.conf.db_port,

View file

@ -342,7 +342,7 @@ def partial_restore(context, sql_file_path, verbose, encryption_key=None):
site = get_site(context)
verbose = context.verbose or verbose
frappe.init(site=site)
frappe.connect(site=site)
frappe.connect()
err, out = frappe.utils.execute_in_shell(f"file {sql_file_path}", check_exit_code=True)
if err:
click.secho("Failed to detect type of backup file", fg="red")
@ -538,7 +538,8 @@ def add_db_index(context, doctype, column):
columns = column # correct naming
for site in context.sites:
frappe.connect(site=site)
frappe.init(site=site)
frappe.connect()
try:
frappe.db.add_index(doctype, columns)
if len(columns) == 1:
@ -580,7 +581,8 @@ def describe_database_table(context, doctype, column):
import json
for site in context.sites:
frappe.connect(site=site)
frappe.init(site=site)
frappe.connect()
try:
data = _extract_table_stats(doctype, column)
# NOTE: Do not print anything else in this to avoid clobbering the output.
@ -666,7 +668,8 @@ def add_system_manager(context, email, first_name, last_name, send_welcome_email
import frappe.utils.user
for site in context.sites:
frappe.connect(site=site)
frappe.init(site=site)
frappe.connect()
try:
frappe.utils.user.add_system_manager(email, first_name, last_name, send_welcome_email, password)
frappe.db.commit()
@ -692,7 +695,8 @@ def add_user_for_sites(
import frappe.utils.user
for site in context.sites:
frappe.connect(site=site)
frappe.init(site=site)
frappe.connect()
try:
add_new_user(email, first_name, last_name, user_type, send_welcome_email, password, add_role)
frappe.db.commit()

View file

@ -34,7 +34,8 @@ def new_language(context, lang_code, app):
raise Exception("--site is required")
# init site
frappe.connect(site=context["sites"][0])
frappe.init(site=context["sites"][0])
frappe.connect()
frappe.translate.write_translations_file(app, lang_code)
print(

View file

@ -108,7 +108,8 @@ def clear_cache(context):
for site in context.sites:
try:
frappe.connect(site)
frappe.init(site=site)
frappe.connect()
frappe.clear_cache()
clear_website_cache()
finally:

View file

@ -188,7 +188,8 @@ def execute_job(site, method, event, job_name, kwargs, user=None, is_async=True,
retval = None
if is_async:
frappe.connect(site)
frappe.init(site=site)
frappe.connect()
if os.environ.get("CI"):
frappe.flags.in_test = True