From ed01fc3b26d8a732abe220d209a6650451966c15 Mon Sep 17 00:00:00 2001 From: Thatoo Date: Tue, 26 Mar 2024 14:19:22 +0100 Subject: [PATCH] feat: don't require editing MariaDB configuration to setup frappe (#25609) * feat(db_requirements): Update db_manager.py * feat(db-requirements): Update setup_db.py * feat(db-requirements): Update setup_db.py Don't add error message on top of check_compatible_versions() 's one Co-authored-by: gavin --------- Co-authored-by: gavin --- frappe/database/db_manager.py | 2 +- frappe/database/mariadb/setup_db.py | 33 +---------------------------- 2 files changed, 2 insertions(+), 33 deletions(-) diff --git a/frappe/database/db_manager.py b/frappe/database/db_manager.py index ef399aac6c..952a30c0fd 100644 --- a/frappe/database/db_manager.py +++ b/frappe/database/db_manager.py @@ -25,7 +25,7 @@ class DbManager: def create_database(self, target): if target in self.get_database_list(): self.drop_database(target) - self.db.sql(f"CREATE DATABASE `{target}`") + self.db.sql(f"CREATE DATABASE `{target}` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci") def drop_database(self, target): self.db.sql_ddl(f"DROP DATABASE IF EXISTS `{target}`") diff --git a/frappe/database/mariadb/setup_db.py b/frappe/database/mariadb/setup_db.py index 96e80e741c..1d701d549d 100644 --- a/frappe/database/mariadb/setup_db.py +++ b/frappe/database/mariadb/setup_db.py @@ -5,11 +5,6 @@ import click import frappe from frappe.database.db_manager import DbManager -REQUIRED_MARIADB_CONFIG = { - "character_set_server": "utf8mb4", - "collation_server": "utf8mb4_unicode_ci", -} - def get_mariadb_variables(): return frappe._dict(frappe.db.sql("show variables")) @@ -71,9 +66,7 @@ def bootstrap_database(verbose, source_sql=None): import sys frappe.connect() - if not check_database_settings(): - print("Database settings do not match expected values; stopping database setup.") - sys.exit(1) + check_compatible_versions() import_db_from_sql(source_sql, verbose) @@ -105,30 +98,6 @@ def import_db_from_sql(source_sql=None, verbose=False): print("Imported from database %s" % source_sql) -def check_database_settings(): - check_compatible_versions() - - # Check each expected value vs. actuals: - mariadb_variables = get_mariadb_variables() - result = True - for key, expected_value in REQUIRED_MARIADB_CONFIG.items(): - if mariadb_variables.get(key) != expected_value: - print(f"For key {key}. Expected value {expected_value}, found value {mariadb_variables.get(key)}") - result = False - - if not result: - print( - ( - "{sep2}Creation of your site - {site} failed because MariaDB is not properly {sep}" - "configured.{sep2}" - "Please verify the above settings in MariaDB's my.cnf. Restart MariaDB.{sep}" - "And then run `bench new-site {site}` again.{sep2}" - ).format(site=frappe.local.site, sep2="\n\n", sep="\n") - ) - - return result - - def check_compatible_versions(): try: version = get_mariadb_version()