You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.2 KiB
37 lines
1.2 KiB
# Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
"""This files contains helper methods to interact with the readonly database."""
|
|
|
|
# Please note this file doesn't contain and should not contain any logic to
|
|
# establish connections outside of Django, as that might lead to effects where
|
|
# connections get leaked, which will lead to Django not cleaning them up
|
|
# properly. See http://crbug.com/422637 for more details on this failure.
|
|
|
|
from django import db as django_db
|
|
|
|
_DISABLED = False
|
|
|
|
def set_globally_disabled(disable):
|
|
"""Disable and enable the use of readonly connections globally.
|
|
|
|
If disabled, connection() will return the global connection instead of the
|
|
readonly connection.
|
|
|
|
@param disable: When True, readonly connections will be disabled.
|
|
"""
|
|
_DISABLED = disable
|
|
|
|
|
|
def connection():
|
|
"""Return a readonly database connection."""
|
|
if _DISABLED:
|
|
return django_db.connections['global']
|
|
return django_db.connections['readonly']
|
|
|
|
|
|
def cursor():
|
|
"""Return a cursor on the readonly database connection."""
|
|
return connection().cursor()
|