本文整理匯總了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