Merge pull request #7326 from oshosanya/allow-database-port-config
feat: Allow user to specify database port
This commit is contained in:
commit
fce9989e1f
5 changed files with 12 additions and 11 deletions
|
|
@ -191,8 +191,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
|
||||
|
|
|
|||
|
|
@ -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, 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)
|
||||
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)
|
||||
return frappe.database.mariadb.database.MariaDBDatabase(host, user, password, port=port)
|
||||
|
||||
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)
|
||||
return frappe.database.mariadb.setup_db.setup_help_database(help_db_name)
|
||||
|
|
|
|||
|
|
@ -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, 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 ''
|
||||
self.user = user or frappe.conf.db_name
|
||||
self.db_name = frappe.conf.db_name
|
||||
self._conn = None
|
||||
|
|
|
|||
|
|
@ -81,11 +81,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
|
||||
|
|
@ -283,4 +283,4 @@ class MariaDBDatabase(Database):
|
|||
self.begin()
|
||||
|
||||
def get_database_list(self, target):
|
||||
return [d[0] for d in self.sql("SHOW DATABASES;")]
|
||||
return [d[0] for d in self.sql("SHOW DATABASES;")]
|
||||
|
|
|
|||
|
|
@ -64,7 +64,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))
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue