From d77abb26635efca66fd5c818f2b326335ca046fa Mon Sep 17 00:00:00 2001 From: Akhil Narang Date: Mon, 2 Dec 2024 13:22:53 +0530 Subject: [PATCH 1/2] refactor: allow setting mariadb/postgres specific root credentials in site config Signed-off-by: Akhil Narang --- frappe/database/mariadb/setup_db.py | 11 +++++++++-- frappe/database/postgres/setup_db.py | 11 ++++++++--- frappe/tests/test_commands.py | 2 +- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/frappe/database/mariadb/setup_db.py b/frappe/database/mariadb/setup_db.py index 495575590a..294e6a132d 100644 --- a/frappe/database/mariadb/setup_db.py +++ b/frappe/database/mariadb/setup_db.py @@ -127,11 +127,18 @@ def get_root_connection(): if not frappe.flags.root_login: frappe.flags.root_login = ( - frappe.conf.get("root_login") or input("Enter mysql super user [root]: ") or "root" + frappe.conf.get("mariadb_root_login") + or frappe.conf.get("root_login") + or input("Enter mysql super user [root]: ") + or "root" ) if not frappe.flags.root_password: - frappe.flags.root_password = frappe.conf.get("root_password") or getpass("MySQL root password: ") + frappe.flags.root_password = ( + frappe.conf.get("mariadb_root_password") + or frappe.conf.get("root_password") + or getpass("MySQL root password: ") + ) frappe.local.flags.root_connection = frappe.database.get_db( socket=frappe.conf.db_socket, diff --git a/frappe/database/postgres/setup_db.py b/frappe/database/postgres/setup_db.py index 2895588ce2..4fd797952a 100644 --- a/frappe/database/postgres/setup_db.py +++ b/frappe/database/postgres/setup_db.py @@ -64,12 +64,17 @@ def get_root_connection(): if not frappe.flags.root_login: frappe.flags.root_login = ( - frappe.conf.get("root_login") or input("Enter postgres super user [postgres]: ") or "postgres" + frappe.conf.get("postgres_root_login") + or frappe.conf.get("root_login") + or input("Enter postgres super user [postgres]: ") + or "postgres" ) if not frappe.flags.root_password: - frappe.flags.root_password = frappe.conf.get("root_password") or getpass( - "Postgres super user password: " + frappe.flags.root_password = ( + frappe.conf.get("postgres_root_password") + or frappe.conf.get("root_password") + or getpass("Postgres super user password: ") ) frappe.local.flags.root_connection = frappe.database.get_db( diff --git a/frappe/tests/test_commands.py b/frappe/tests/test_commands.py index 98ac3c8ed3..1ea32c48e5 100644 --- a/frappe/tests/test_commands.py +++ b/frappe/tests/test_commands.py @@ -248,7 +248,7 @@ class TestCommands(BaseTestCommands): global_config = { "admin_password": frappe.conf.admin_password, "root_login": frappe.conf.root_login, - "root_password": frappe.conf.root_password, + "root_password": frappe.conf.mariadb_root_password or frappe.conf.root_password, "db_type": frappe.conf.db_type, } site_data = {"test_site": TEST_SITE, **global_config} From 5e1146e216770d47f0d12f3f20e055cf5d53ada4 Mon Sep 17 00:00:00 2001 From: Akhil Narang Date: Mon, 2 Dec 2024 13:30:49 +0530 Subject: [PATCH 2/2] fix(installer): don't set defaults for `frappe.flags.root_username` Its set anyway when calling `setup_database()` (inside `get_root_connection()`) Signed-off-by: Akhil Narang --- frappe/installer.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/frappe/installer.py b/frappe/installer.py index 662228355e..b930e03278 100644 --- a/frappe/installer.py +++ b/frappe/installer.py @@ -142,11 +142,6 @@ def install_db( if not db_type: db_type = frappe.conf.db_type - if not root_login and db_type == "mariadb": - root_login = "root" - elif not root_login and db_type == "postgres": - root_login = "postgres" - make_conf( db_name, site_config=site_config, @@ -159,8 +154,11 @@ def install_db( ) frappe.flags.in_install_db = True - frappe.flags.root_login = root_login - frappe.flags.root_password = root_password + if root_login: + frappe.flags.root_login = root_login + + if root_password: + frappe.flags.root_password = root_password if setup: setup_database(force, verbose, mariadb_user_host_login_scope)