X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=m_librarian%2Fdb.py;h=d63fd416406abe7b01d426189edfbf7e7d65d545;hb=3e3baae9c6d858b03fd66089e36c2ea1ae2516fb;hp=225e2ec613a97bb0751442bf6501430a5e9f9909;hpb=12febf0a2f7549e2e2de5a1f2f7610255e0ad14a;p=m_librarian.git diff --git a/m_librarian/db.py b/m_librarian/db.py index 225e2ec..d63fd41 100755 --- a/m_librarian/db.py +++ b/m_librarian/db.py @@ -2,7 +2,7 @@ import os from sqlobject import SQLObject, StringCol, UnicodeCol, IntCol, BoolCol, \ - ForeignKey, DateCol, connectionForURI, sqlhub + ForeignKey, DateCol, connectionForURI, sqlhub, dberrors from .config import ml_conf try: @@ -42,12 +42,6 @@ class Author(SQLObject): count = IntCol() -class Genre(SQLObject): - name = StringCol() - title = UnicodeCol() - count = IntCol() - - class Book(SQLObject): author = ForeignKey('Author') genre = ForeignKey('Genre') @@ -68,11 +62,29 @@ class Extension(SQLObject): count = IntCol() +class Genre(SQLObject): + name = StringCol() + title = UnicodeCol() + count = IntCol() + + class Language(SQLObject): name = StringCol() count = IntCol() +def init_db(): + try: + Book.select()[0] + except IndexError: # Table exists but is empty + return + except dberrors.Error: + for table in Author, Extension, Genre, Language, Book: + table.createTable() + else: + return + + if __name__ == '__main__': print "DB dirs:", db_dirs if db_uri: