Özel işlem için yalıtım düzeyini ayarlamak mümkün mü (ancak ham sql ile değil)? gibiDjango ORM içinde işlem başına yalıtım düzeyi
Örneğinşey:
with transaction.commit_on_success(isolation='SERIALIZABLE'):
bla
Özel işlem için yalıtım düzeyini ayarlamak mümkün mü (ancak ham sql ile değil)? gibiDjango ORM içinde işlem başına yalıtım düzeyi
Örneğinşey:
with transaction.commit_on_success(isolation='SERIALIZABLE'):
bla
olarak bildiğim kadarıyla, geçici Varolan bir veritabanı bağlantısı (ler) için Django hareket yalıtım düzeyini değiştirmek için bir yolu yoktur. Ancak, varsayılan veritabanı bağlantılarınızı yansıtan ancak işlem yalıtımı düzeyini ayarlayan başka bir veritabanı bağlantısı kurabilirsiniz.
örn. sizin settings.py içinde:
DATABASES = {
'default': {
'NAME': 'app_data',
'ENGINE': 'django.db.backends.postgresql',
'USER': 'postgres_user',
'PASSWORD': 's3krit',
},
'serializable': {
'NAME': 'app_data',
'ENGINE': 'django.db.backends.postgresl',
'USER': 'postgres_user',
'PASSWORD': 's3krit',
'OPTIONS': {
'isolation_level': psycopg2.extensions.ISOLATION_LEVEL_SERIALIZABLE,
},
},
}
seri hale getirilebilir işlem seviyesini kullanmak için olabilir:
using()
QuerySet method örnUser.objects.using('serializable').all
class SerializableUserManager(models.Manager):
def get_queryset(self):
return super(SerializableUserManager, self).get_queryset().using('serializable')
Kabul edilebilir hareket yalıtım düzeyi ile veritabanı bağlantısı belirten bir custom manager ekleyin. Teşekkür ederim. –