Commit 508bf98f authored by Dmitry Shelepnev's avatar Dmitry Shelepnev
Browse files

Enable transactional mode

parent fa7a2409
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -4,11 +4,13 @@ import os

from django.db.models import Q
from django.utils.translation import ugettext as _
from django.db import transaction

from opds_catalog.models import Book, Catalog, Author, Genre, Series, bseries, bauthor, bgenre, bookshelf, Counter, LangCodes
from opds_catalog.models import SIZE_BOOK_FILENAME, SIZE_BOOK_PATH, SIZE_BOOK_FORMAT, SIZE_BOOK_DOCDATE, SIZE_BOOK_LANG, SIZE_BOOK_TITLE, SIZE_BOOK_ANNOTATION
from opds_catalog.models import SIZE_CAT_CATNAME, SIZE_CAT_PATH, SIZE_AUTHOR_NAME, SIZE_GENRE, SIZE_GENRE_SECTION, SIZE_GENRE_SUBSECTION, SIZE_SERIES


##########################################################################
# типы каталогов (cat_type)
#
@@ -213,6 +215,8 @@ def addbseries(book, ser, ser_no):
    bs = bseries(book=book, ser=ser, ser_no=ser_no)
    bs.save()
    
def set_autocommit(autocommit):
    transaction.set_autocommit(autocommit)
    
def commit():
    #self.cnx.commit()
    pass
 No newline at end of file
    transaction.commit()
 No newline at end of file
+6 −8
Original line number Diff line number Diff line
@@ -75,8 +75,8 @@ class opdsScanner:
        self.zip_file = None
        self.rel_path = None         
       
        opdsdb.set_autocommit(not settings.SINGLE_COMMIT)       
        opdsdb.avail_check_prepare()

        for full_path, dirs, files in os.walk(settings.ROOT_LIB, followlinks=True):
            # Если разрешена обработка inpx, то при нахождении inpx обрабатываем его и прекращаем обработку текущего каталога
            if settings.INPX_ENABLE:
@@ -98,14 +98,16 @@ class opdsScanner:
                    file_size=os.path.getsize(file)
                    self.processfile(name,full_path,file,None,0,file_size)

        opdsdb.commit()

        #if settings.DELETE_LOGICAL:
        #    self.books_deleted=opdsdb.books_del_logical()
        #else:
        #    self.books_deleted=opdsdb.books_del_phisical()
            
        self.books_deleted=opdsdb.books_del_phisical()
        
        if settings.SINGLE_COMMIT: 
            opdsdb.commit() 
                    
        self.log_stats()

    def inpskip_callback(self, inpx, inp_name, inp_size):
@@ -261,10 +263,6 @@ class opdsScanner:
                            else:
                                ser_no=0
                            opdsdb.addbseries(book,ser,ser_no)
                          
                if not settings.SINGLE_COMMIT: 
                    opdsdb.commit()

            else:
                self.books_skipped+=1
                self.logger.debug("Book "+rel_path+"/"+name+" Already in DB.")