changeset 3475324686b2 in trytond:default
details: https://hg.tryton.org/trytond?cmd=changeset;node=3475324686b2
description:
Add database default name configuration
Some user may need to customize the default name used to run operation
without
proper database name.
issue9121
review273021002
diffstat:
CHANGELOG | 1 +
doc/topics/configuration.rst | 6 ++++++
trytond/backend/postgresql/database.py | 7 ++++---
trytond/backend/sqlite/database.py | 6 ++++--
4 files changed, 15 insertions(+), 5 deletions(-)
diffs (90 lines):
diff -r 852e50ac7da3 -r 3475324686b2 CHANGELOG
--- a/CHANGELOG Wed Apr 01 23:52:08 2020 +0200
+++ b/CHANGELOG Wed Apr 01 23:56:17 2020 +0200
@@ -1,3 +1,4 @@
+* Add default database name configuration
* Add retry option to report convert
* Add depends fields on view_attributes
* Simplify trigger action
diff -r 852e50ac7da3 -r 3475324686b2 doc/topics/configuration.rst
--- a/doc/topics/configuration.rst Wed Apr 01 23:52:08 2020 +0200
+++ b/doc/topics/configuration.rst Wed Apr 01 23:56:17 2020 +0200
@@ -139,6 +139,12 @@
Default: `en`
+default_name
+~~~~~~~~~~~~
+
+The name of the database to use for operations without a database name.
+Default: `template1` for PostgreSQL, `:memory:` for SQLite.
+
request
-------
diff -r 852e50ac7da3 -r 3475324686b2 trytond/backend/postgresql/database.py
--- a/trytond/backend/postgresql/database.py Wed Apr 01 23:52:08 2020 +0200
+++ b/trytond/backend/postgresql/database.py Wed Apr 01 23:56:17 2020 +0200
@@ -46,6 +46,7 @@
_timeout = config.getint('database', 'timeout')
_minconn = config.getint('database', 'minconn', default=1)
_maxconn = config.getint('database', 'maxconn', default=64)
+_default_name = config.get('database', 'default_name', default='template1')
def unescape_quote(s):
@@ -151,7 +152,7 @@
'TIMESTAMP': SQLType('TIMESTAMP', 'TIMESTAMP(6)'),
}
- def __new__(cls, name='template1'):
+ def __new__(cls, name=_default_name):
with cls._lock:
now = datetime.now()
databases = cls._databases[os.getpid()]
@@ -163,7 +164,7 @@
if name in databases:
inst = databases[name]
else:
- if name == 'template1':
+ if name == _default_name:
minconn = 0
else:
minconn = _minconn
@@ -176,7 +177,7 @@
inst._last_use = datetime.now()
return inst
- def __init__(self, name='template1'):
+ def __init__(self, name=_default_name):
super(Database, self).__init__(name)
@classmethod
diff -r 852e50ac7da3 -r 3475324686b2 trytond/backend/sqlite/database.py
--- a/trytond/backend/sqlite/database.py Wed Apr 01 23:52:08 2020 +0200
+++ b/trytond/backend/sqlite/database.py Wed Apr 01 23:56:17 2020 +0200
@@ -30,6 +30,8 @@
__all__ = ['Database', 'DatabaseIntegrityError', 'DatabaseOperationalError']
logger = logging.getLogger(__name__)
+_default_name = config.get('database', 'default_name', default=':memory:')
+
class SQLiteExtract(Function):
__slots__ = ()
@@ -321,13 +323,13 @@
'BOOL': SQLType('BOOLEAN', 'BOOLEAN'),
}
- def __new__(cls, name=':memory:'):
+ def __new__(cls, name=_default_name):
if (name == ':memory:'
and getattr(cls._local, 'memory_database', None)):
return cls._local.memory_database
return DatabaseInterface.__new__(cls, name=name)
- def __init__(self, name=':memory:'):
+ def __init__(self, name=_default_name):
super(Database, self).__init__(name=name)
if name == ':memory:':
Database._local.memory_database = self