From a0f8d3f21cf92f401ff8d140de47a6db9d43689b Mon Sep 17 00:00:00 2001 From: Michael Oshosanya Date: Sun, 21 Apr 2019 19:43:49 +0100 Subject: [PATCH 1/5] Allow user to specify database port --- frappe/__init__.py | 4 ++-- frappe/database/__init__.py | 8 ++++---- frappe/database/database.py | 3 ++- frappe/database/mariadb/database.py | 6 +++--- frappe/database/postgres/database.py | 2 +- 5 files changed, 12 insertions(+), 11 deletions(-) diff --git a/frappe/__init__.py b/frappe/__init__.py index 584fca2a02..1a873b33c2 100644 --- a/frappe/__init__.py +++ b/frappe/__init__.py @@ -194,8 +194,8 @@ def connect(site=None, db_name=None): def connect_read_only(): from frappe.database import get_db - local.read_only_db = get_db(local.conf.slave_host, local.conf.slave_db_name, - local.conf.slave_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) # swap db connections local.master_db = local.db diff --git a/frappe/database/__init__.py b/frappe/database/__init__.py index f00c6bf0b4..ec83d21bdb 100644 --- a/frappe/database/__init__.py +++ b/frappe/database/__init__.py @@ -23,14 +23,14 @@ def drop_user_and_database(db_name, root_login=None, root_password=None): import frappe.database.mariadb.setup_db return frappe.database.mariadb.setup_db.drop_user_and_database(db_name, root_login, root_password) -def get_db(host=None, user=None, password=None): +def get_db(host=None, port=None, user=None, password=None): import frappe if frappe.conf.db_type == 'postgres': import frappe.database.postgres.database - return frappe.database.postgres.database.PostgresDatabase(host, user, password) + return frappe.database.postgres.database.PostgresDatabase(host, port, user, password) else: import frappe.database.mariadb.database - return frappe.database.mariadb.database.MariaDBDatabase(host, user, password) + return frappe.database.mariadb.database.MariaDBDatabase(host, port, user, password) def setup_help_database(help_db_name): import frappe @@ -39,4 +39,4 @@ def setup_help_database(help_db_name): return frappe.database.postgres.setup_db.setup_help_database(help_db_name) else: import frappe.database.mariadb.setup_db - return frappe.database.mariadb.setup_db.setup_help_database(help_db_name) \ No newline at end of file + return frappe.database.mariadb.setup_db.setup_help_database(help_db_name) diff --git a/frappe/database/database.py b/frappe/database/database.py index d3b44913fc..d4c1ceada3 100644 --- a/frappe/database/database.py +++ b/frappe/database/database.py @@ -46,9 +46,10 @@ class Database(object): class InvalidColumnName(frappe.ValidationError): pass - def __init__(self, host=None, user=None, password=None, ac_name=None, use_default=0): + def __init__(self, host=None, port=None, user=None, password=None, ac_name=None, use_default=0): self.setup_type_map() self.host = host or frappe.conf.db_host or 'localhost' + self.port = port or frappe.conf.db_port or '' self.user = user or frappe.conf.db_name self.db_name = frappe.conf.db_name self._conn = None diff --git a/frappe/database/mariadb/database.py b/frappe/database/mariadb/database.py index 69a9cf5e9f..9522672059 100644 --- a/frappe/database/mariadb/database.py +++ b/frappe/database/mariadb/database.py @@ -80,11 +80,11 @@ class MariaDBDatabase(Database): if usessl: conn = pymysql.connect(self.host, self.user or '', self.password or '', - charset='utf8mb4', use_unicode = True, ssl=ssl_params, + port=self.port, charset='utf8mb4', use_unicode = True, ssl=ssl_params, conv = conversions, local_infile = frappe.conf.local_infile) else: conn = pymysql.connect(self.host, self.user or '', self.password or '', - charset='utf8mb4', use_unicode = True, conv = conversions, + port=self.port, charset='utf8mb4', use_unicode = True, conv = conversions, local_infile = frappe.conf.local_infile) # MYSQL_OPTION_MULTI_STATEMENTS_OFF = 1 @@ -282,4 +282,4 @@ class MariaDBDatabase(Database): self.begin() def get_database_list(self, target): - return [d[0] for d in self.sql("SHOW DATABASES;")] \ No newline at end of file + return [d[0] for d in self.sql("SHOW DATABASES;")] diff --git a/frappe/database/postgres/database.py b/frappe/database/postgres/database.py index 4b8a4ae500..8c29414427 100644 --- a/frappe/database/postgres/database.py +++ b/frappe/database/postgres/database.py @@ -63,7 +63,7 @@ class PostgresDatabase(Database): def get_connection(self): # warnings.filterwarnings('ignore', category=psycopg2.Warning) - conn = psycopg2.connect('host={} dbname={}'.format(self.host, self.user)) + conn = psycopg2.connect('host={} dbname={} port={}'.format(self.host, self.user, self.port)) conn.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT) # TODO: Remove this # conn = psycopg2.connect('host={} dbname={} user={} password={}'.format(self.host, # self.user, self.user, self.password)) From 89a80908a185f5ebc796d328d952aeb5c2f89821 Mon Sep 17 00:00:00 2001 From: Michael Oshosanya Date: Mon, 22 Apr 2019 08:02:57 +0100 Subject: [PATCH 2/5] Resolve conversation --- frappe/database/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/database/__init__.py b/frappe/database/__init__.py index ec83d21bdb..928fbefbbe 100644 --- a/frappe/database/__init__.py +++ b/frappe/database/__init__.py @@ -23,7 +23,7 @@ def drop_user_and_database(db_name, root_login=None, root_password=None): import frappe.database.mariadb.setup_db return frappe.database.mariadb.setup_db.drop_user_and_database(db_name, root_login, root_password) -def get_db(host=None, port=None, user=None, password=None): +def get_db(host=None, user=None, password=None, port=None): import frappe if frappe.conf.db_type == 'postgres': import frappe.database.postgres.database From 5e97e040003b975c10924a8c25a344a01d6a75d0 Mon Sep 17 00:00:00 2001 From: Michael Oshosanya Date: Tue, 23 Apr 2019 06:41:33 +0100 Subject: [PATCH 3/5] Resolve conversation --- frappe/database/database.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/database/database.py b/frappe/database/database.py index d4c1ceada3..26e324c751 100644 --- a/frappe/database/database.py +++ b/frappe/database/database.py @@ -46,7 +46,7 @@ class Database(object): class InvalidColumnName(frappe.ValidationError): pass - def __init__(self, host=None, port=None, user=None, password=None, ac_name=None, use_default=0): + def __init__(self, host=None, user=None, password=None, ac_name=None, use_default=0, port=None): self.setup_type_map() self.host = host or frappe.conf.db_host or 'localhost' self.port = port or frappe.conf.db_port or '' From 3b1d978c0835aa124f00630a2f0b38d140127de7 Mon Sep 17 00:00:00 2001 From: Michael Oshosanya Date: Tue, 23 Apr 2019 07:02:07 +0100 Subject: [PATCH 4/5] Resolve conversation --- frappe/database/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frappe/database/__init__.py b/frappe/database/__init__.py index 928fbefbbe..26e0d89005 100644 --- a/frappe/database/__init__.py +++ b/frappe/database/__init__.py @@ -27,10 +27,10 @@ def get_db(host=None, user=None, password=None, port=None): import frappe if frappe.conf.db_type == 'postgres': import frappe.database.postgres.database - return frappe.database.postgres.database.PostgresDatabase(host, port, user, password) + return frappe.database.postgres.database.PostgresDatabase(host, user, password, port) else: import frappe.database.mariadb.database - return frappe.database.mariadb.database.MariaDBDatabase(host, port, user, password) + return frappe.database.mariadb.database.MariaDBDatabase(host, user, password, port) def setup_help_database(help_db_name): import frappe From 7ac234f38ae2588a08c29e3164dbc895a6320514 Mon Sep 17 00:00:00 2001 From: Michael Oshosanya Date: Tue, 23 Apr 2019 07:04:55 +0100 Subject: [PATCH 5/5] Resolve conversation --- frappe/database/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frappe/database/__init__.py b/frappe/database/__init__.py index 26e0d89005..9d05223044 100644 --- a/frappe/database/__init__.py +++ b/frappe/database/__init__.py @@ -27,10 +27,10 @@ def get_db(host=None, user=None, password=None, port=None): import frappe if frappe.conf.db_type == 'postgres': import frappe.database.postgres.database - return frappe.database.postgres.database.PostgresDatabase(host, user, password, port) + return frappe.database.postgres.database.PostgresDatabase(host, user, password, port=port) else: import frappe.database.mariadb.database - return frappe.database.mariadb.database.MariaDBDatabase(host, user, password, port) + return frappe.database.mariadb.database.MariaDBDatabase(host, user, password, port=port) def setup_help_database(help_db_name): import frappe