本文整理汇总了Python中psycopg2.extensions.ISOLATION_LEVEL_REPEATABLE_READ属性的典型用法代码示例。如果您正苦于以下问题:Python extensions.ISOLATION_LEVEL_REPEATABLE_READ属性的具体用法?Python extensions.ISOLATION_LEVEL_REPEATABLE_READ怎么用?Python extensions.ISOLATION_LEVEL_REPEATABLE_READ使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类psycopg2.extensions
的用法示例。
在下文中一共展示了extensions.ISOLATION_LEVEL_REPEATABLE_READ属性的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: main
# 需要导入模块: from psycopg2 import extensions [as 别名]
# 或者: from psycopg2.extensions import ISOLATION_LEVEL_REPEATABLE_READ [as 别名]
def main():
"""The main program"""
args = parse_args()
items = []
now = str(int(time()))
with connect(database=args.dbname) as conn:
conn.set_session(
isolation_level=ISOLATION_LEVEL_REPEATABLE_READ,
readonly=True,
)
for query in args.queries:
rows = execute(conn, query)
if len(rows) == 0:
raise Exception('No result')
items.extend(
get_row_data(args.key_column, rows) if args.key_column
else get_column_data(rows)
)
for key, value in items:
print(args.prefix + '.' + key, value, now)
示例2: _isolation_lookup
# 需要导入模块: from psycopg2 import extensions [as 别名]
# 或者: from psycopg2.extensions import ISOLATION_LEVEL_REPEATABLE_READ [as 别名]
def _isolation_lookup(self):
extensions = self._psycopg2_extensions()
return {
'AUTOCOMMIT': extensions.ISOLATION_LEVEL_AUTOCOMMIT,
'READ COMMITTED': extensions.ISOLATION_LEVEL_READ_COMMITTED,
'READ UNCOMMITTED': extensions.ISOLATION_LEVEL_READ_UNCOMMITTED,
'REPEATABLE READ': extensions.ISOLATION_LEVEL_REPEATABLE_READ,
'SERIALIZABLE': extensions.ISOLATION_LEVEL_SERIALIZABLE
}
示例3: _isolation_lookup
# 需要导入模块: from psycopg2 import extensions [as 别名]
# 或者: from psycopg2.extensions import ISOLATION_LEVEL_REPEATABLE_READ [as 别名]
def _isolation_lookup(self):
from psycopg2 import extensions
return {
'AUTOCOMMIT': extensions.ISOLATION_LEVEL_AUTOCOMMIT,
'READ COMMITTED': extensions.ISOLATION_LEVEL_READ_COMMITTED,
'READ UNCOMMITTED': extensions.ISOLATION_LEVEL_READ_UNCOMMITTED,
'REPEATABLE READ': extensions.ISOLATION_LEVEL_REPEATABLE_READ,
'SERIALIZABLE': extensions.ISOLATION_LEVEL_SERIALIZABLE
}
示例4: _isolation_lookup
# 需要导入模块: from psycopg2 import extensions [as 别名]
# 或者: from psycopg2.extensions import ISOLATION_LEVEL_REPEATABLE_READ [as 别名]
def _isolation_lookup(self):
extensions = self._psycopg2_extensions()
return {
"AUTOCOMMIT": extensions.ISOLATION_LEVEL_AUTOCOMMIT,
"READ COMMITTED": extensions.ISOLATION_LEVEL_READ_COMMITTED,
"READ UNCOMMITTED": extensions.ISOLATION_LEVEL_READ_UNCOMMITTED,
"REPEATABLE READ": extensions.ISOLATION_LEVEL_REPEATABLE_READ,
"SERIALIZABLE": extensions.ISOLATION_LEVEL_SERIALIZABLE,
}
示例5: fix_up_databases
# 需要导入模块: from psycopg2 import extensions [as 别名]
# 或者: from psycopg2.extensions import ISOLATION_LEVEL_REPEATABLE_READ [as 别名]
def fix_up_databases(databases):
"""Increase isolation level, use atomic requests.
Does not modify connections to non-PostgreSQL databases.
"""
# Remove keys with null values from databases.
databases.update(
{
alias: {
key: value
for key, value in database.items()
if value is not None
}
for alias, database in databases.items()
}
)
# Ensure that transactions are configured correctly.
from psycopg2.extensions import ISOLATION_LEVEL_REPEATABLE_READ
for _, database in databases.items():
engine = database.get("ENGINE")
if engine == "django.db.backends.postgresql_psycopg2":
options = database.setdefault("OPTIONS", {})
# Explicitly set the transaction isolation level. MAAS needs a
# particular transaction isolation level, and it enforces it.
if "isolation_level" in options:
isolation_level = options["isolation_level"]
if isolation_level != ISOLATION_LEVEL_REPEATABLE_READ:
warnings.warn(
"isolation_level is set to %r; overriding to %r."
% (isolation_level, ISOLATION_LEVEL_REPEATABLE_READ),
RuntimeWarning,
2,
)
options["isolation_level"] = ISOLATION_LEVEL_REPEATABLE_READ
# Enable ATOMIC_REQUESTS: MAAS manages transactions across the
# whole request/response lifecycle including middleware (Django,
# in its infinite wisdom, does not). However we enable this
# setting to ensure that views run within _savepoints_ so that
# middleware exception handlers that suppress exceptions don't
# inadvertently allow failed requests to be committed.
if "ATOMIC_REQUESTS" in database:
atomic_requests = database["ATOMIC_REQUESTS"]
if not atomic_requests:
warnings.warn(
"ATOMIC_REQUESTS is set to %r; overriding to True."
% (atomic_requests,),
RuntimeWarning,
2,
)
database["ATOMIC_REQUESTS"] = True