]> git.phdru.name Git - m_librarian.git/blobdiff - m_librarian/inp.py
Fix VACUUM command
[m_librarian.git] / m_librarian / inp.py
index dd32c0825494f45d58c5029288a312a1df6b3b8a..863523fe2cbbf0f95637656e702f6b364873a5c5 100644 (file)
@@ -1,6 +1,4 @@
 
-__all__ = ['import_inpx']
-
 import os
 from zipfile import ZipFile
 from sqlobject import sqlhub
@@ -8,6 +6,8 @@ from sqlobject.sqlbuilder import Select
 from .db import Author, Book, Extension, Genre, Language, \
     insert_name, insert_author
 
+__all__ = ['import_inpx']
+
 
 EOT = chr(4)  # INP field separator
 
@@ -72,6 +72,7 @@ def import_inp(archive, inp):
             Select(Book.q.file, Book.q.archive == archive))):
         files.add(file)
     for line in inp:
+        line = line.decode('utf-8')
         parts = split_line(line)
         file = parts[5]
         if file not in files:
@@ -89,6 +90,8 @@ def import_inpx(path):
         sqlhub.doInTransaction(import_inp, archive + '.zip', inp)
         inp.close()
     connection = sqlhub.processConnection
-    if connection.dbName in ('postgres', 'sqlite'):
+    if connection.dbName == 'postgres':
         for table in Author, Book, Extension, Genre, Language:
             connection.query("VACUUM %s" % table.sqlmeta.table)
+    elif connection.dbName == 'sqlite':
+        connection.query("VACUUM")