当前位置: 首页>>代码示例>>Python>>正文


Python transaction.get_connection方法代码示例

本文整理汇总了Python中django.db.transaction.get_connection方法的典型用法代码示例。如果您正苦于以下问题:Python transaction.get_connection方法的具体用法?Python transaction.get_connection怎么用?Python transaction.get_connection使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在django.db.transaction的用法示例。


在下文中一共展示了transaction.get_connection方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: _patch_atomic

# 需要导入模块: from django.db import transaction [as 别名]
# 或者: from django.db.transaction import get_connection [as 别名]
def _patch_atomic():
    def patch_enter(original):
        @wraps(original)
        def inner(self):
            cachalot_caches.enter_atomic(self.using)
            original(self)

        return inner

    def patch_exit(original):
        @wraps(original)
        def inner(self, exc_type, exc_value, traceback):
            needs_rollback = get_connection(self.using).needs_rollback
            try:
                original(self, exc_type, exc_value, traceback)
            finally:
                cachalot_caches.exit_atomic(
                    self.using, exc_type is None and not needs_rollback)

        return inner

    Atomic.__enter__ = patch_enter(Atomic.__enter__)
    Atomic.__exit__ = patch_exit(Atomic.__exit__) 
开发者ID:noripyt,项目名称:django-cachalot,代码行数:25,代码来源:monkey_patch.py

示例2: update_object

# 需要导入模块: from django.db import transaction [as 别名]
# 或者: from django.db.transaction import get_connection [as 别名]
def update_object(self, instance, using=None, **kwargs):
        LOGGER.debug("Updating object; %s ...", instance.id)
        conn = transaction.get_connection()
        if conn.in_atomic_block:
            if self._transaction_savepts != conn.savepoint_ids:
                self._transaction_savepts = conn.savepoint_ids
                conn.on_commit(self.transaction_committed)
            if self.should_update(instance, **kwargs):
                if not using:
                    using = "default"
                if using not in self._transaction_added:
                    self._transaction_added[using] = {}
                self._transaction_added[using][instance.id] = instance
        else:
            if self._transaction_added or self._transaction_removed:
                # previous transaction must have ended with rollback
                self.reset()
            if self._backend_queue:
                self._backend_queue.add(self.__class__, using, [instance])
            else:
                super(TxnAwareSearchIndex, self).update_object(
                    instance, using, **kwargs
                ) 
开发者ID:bcgov,项目名称:aries-vcr,代码行数:25,代码来源:index.py

示例3: remove_object

# 需要导入模块: from django.db import transaction [as 别名]
# 或者: from django.db.transaction import get_connection [as 别名]
def remove_object(self, instance, using=None, **kwargs):
        LOGGER.debug("Removing object; %s ...", instance.id)
        conn = transaction.get_connection()
        if conn.in_atomic_block:
            if self._transaction_savepts != conn.savepoint_ids:
                self._transaction_savepts = conn.savepoint_ids
                conn.on_commit(self.transaction_committed)
            if not using:
                using = "default"
            if using not in self._transaction_removed:
                self._transaction_removed[using] = {}
            self._transaction_removed[using][instance.id] = instance
        else:
            if self._transaction_added or self._transaction_removed:
                # previous transaction must have ended with rollback
                self.reset()
            if self._backend_queue:
                self._backend_queue.delete(self.__class__, using, [instance])
            else:
                super(TxnAwareSearchIndex, self).remove_object(
                    instance, using, **kwargs
                ) 
开发者ID:bcgov,项目名称:aries-vcr,代码行数:24,代码来源:index.py

示例4: update_object

# 需要导入模块: from django.db import transaction [as 别名]
# 或者: from django.db.transaction import get_connection [as 别名]
def update_object(self, instance, using=None, **kwargs):
        LOGGER.debug("Updating object; %s ...", instance.id)
        conn = transaction.get_connection()
        if conn.in_atomic_block:
            if self._transaction_savepts != conn.savepoint_ids:
                self._transaction_savepts = conn.savepoint_ids
                conn.on_commit(self.transaction_committed)
            if self.should_update(instance, **kwargs):
                if not using:
                    using = "default"
                if using not in self._transaction_added:
                    self._transaction_added[using] = {}
                self._transaction_added[using][instance.id] = instance
        else:
            if self._transaction_added or self._transaction_removed:
                # previous transaction must have ended with rollback
                self.reset()
            if self._backend_queue:
                self._backend_queue.add(self.__class__, using, [instance])
            else:
                super(TxnAwareSearchIndex, self).update_object(instance, using, **kwargs) 
开发者ID:bcgov,项目名称:TheOrgBook,代码行数:23,代码来源:index.py

示例5: remove_object

# 需要导入模块: from django.db import transaction [as 别名]
# 或者: from django.db.transaction import get_connection [as 别名]
def remove_object(self, instance, using=None, **kwargs):
        LOGGER.debug("Removing object; %s ...", instance.id)
        conn = transaction.get_connection()
        if conn.in_atomic_block:
            if self._transaction_savepts != conn.savepoint_ids:
                self._transaction_savepts = conn.savepoint_ids
                conn.on_commit(self.transaction_committed)
            if not using:
                using = "default"
            if using not in self._transaction_removed:
                self._transaction_removed[using] = {}
            self._transaction_removed[using][instance.id] = instance
        else:
            if self._transaction_added or self._transaction_removed:
                # previous transaction must have ended with rollback
                self.reset()
            if self._backend_queue:
                self._backend_queue.delete(self.__class__, using, [instance])
            else:
                super(TxnAwareSearchIndex, self).remove_object(instance, using, **kwargs) 
开发者ID:bcgov,项目名称:TheOrgBook,代码行数:22,代码来源:index.py

示例6: __enter__

# 需要导入模块: from django.db import transaction [as 别名]
# 或者: from django.db.transaction import get_connection [as 别名]
def __enter__(self):
        """Enter context manager."""
        connection = transaction.get_connection()
        connection.set_schema(self.schema)
        return self 
开发者ID:project-koku,项目名称:koku,代码行数:7,代码来源:koku_database_access.py

示例7: __exit__

# 需要导入模块: from django.db import transaction [as 别名]
# 或者: from django.db.transaction import get_connection [as 别名]
def __exit__(self, exception_type, exception_value, traceback):
        """Context manager reset schema to public and exit."""
        connection = transaction.get_connection()
        connection.set_schema_to_public() 
开发者ID:project-koku,项目名称:koku,代码行数:6,代码来源:koku_database_access.py

示例8: database_event

# 需要导入模块: from django.db import transaction [as 别名]
# 或者: from django.db.transaction import get_connection [as 别名]
def database_event(self, instance: Model, action: Action):

        connection = transaction.get_connection()

        if connection.in_atomic_block:
            if len(connection.savepoint_ids) > 0:
                warnings.warn(
                    "Model observation with save points is unsupported and will"
                    " result in unexpected beauvoir.",
                    UnsupportedWarning,
                )

        connection.on_commit(partial(self.post_change_receiver, instance, action)) 
开发者ID:hishnash,项目名称:djangochannelsrestframework,代码行数:15,代码来源:model_observer.py

示例9: transaction_committed

# 需要导入模块: from django.db import transaction [as 别名]
# 或者: from django.db.transaction import get_connection [as 别名]
def transaction_committed(self):
        LOGGER.debug("Committing transaction(s) ...")
        conn = transaction.get_connection()
        if conn.in_atomic_block:
            # committed nested transaction - ensure hook is attached
            self._transaction_savepts = conn.savepoint_ids
            conn.on_commit(self.transaction_committed)
        else:
            for using, instances in self._transaction_removed.items():
                if instances:
                    LOGGER.debug("Committing %d deferred Solr delete(s) after transaction.", len(instances))
                    if self._backend_queue:
                        self._backend_queue.delete(self.__class__, using, list(instances.values()))
                    else:
                        backend = self.get_backend(using)
                        if backend is not None:
                            for instance in instances.values():
                                backend.remove(instance)
                        else:
                            LOGGER.error("Failed to get backend.  Unable to commit %d deferred Solr delete(s) after transaction.", len(instances))

            for using, instances in self._transaction_added.items():
                if instances:
                    LOGGER.debug("Committing %d deferred Solr update(s) after transaction ...", len(instances))
                    if self._backend_queue:
                        self._backend_queue.add(self.__class__, using, list(instances.values()))
                    else:
                        backend = self.get_backend(using)
                        if backend is not None:
                            backend.update(self, instances.values())
                        else:
                            LOGGER.error("Failed to get backend.  Unable to commit %d deferred Solr update(s) after transaction.", len(instances))
            self.reset() 
开发者ID:bcgov,项目名称:TheOrgBook,代码行数:35,代码来源:index.py

示例10: transaction_committed

# 需要导入模块: from django.db import transaction [as 别名]
# 或者: from django.db.transaction import get_connection [as 别名]
def transaction_committed(self):
        LOGGER.debug("Committing transaction(s) ...")
        conn = transaction.get_connection()
        if conn.in_atomic_block:
            # committed nested transaction - ensure hook is attached
            self._transaction_savepts = conn.savepoint_ids
            conn.on_commit(self.transaction_committed)
        else:
            for using, instances in self._transaction_removed.items():
                if instances:
                    LOGGER.debug(
                        "Committing %d deferred Solr delete(s) after transaction...",
                        len(instances),
                    )
                    if self._backend_queue:
                        self._backend_queue.delete(
                            self.__class__, using, list(instances.values())
                        )
                    else:
                        backend = self.get_backend(using)
                        if backend is not None:
                            for instance in instances.values():
                                backend.remove(instance)
                        else:
                            LOGGER.error(
                                "Failed to get backend.  Unable to commit %d deferred Solr delete(s) after transaction.",
                                len(instances),
                            )

            for using, instances in self._transaction_added.items():
                if instances:
                    LOGGER.debug(
                        "Committing %d deferred Solr update(s) after transaction",
                        len(instances),
                    )
                    if self._backend_queue:
                        self._backend_queue.add(
                            self.__class__, using, list(instances.values())
                        )
                    else:
                        backend = self.get_backend(using)
                        if backend is not None:
                            backend.update(self, instances.values())
                        else:
                            LOGGER.error(
                                "Failed to get backend.  Unable to commit %d deferred Solr update(s) after transaction.",
                                len(instances),
                            )
            self.reset() 
开发者ID:bcgov,项目名称:aries-vcr,代码行数:51,代码来源:index.py


注:本文中的django.db.transaction.get_connection方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。