import csv from orator import DatabaseManager, Model, Schema class Part(Model): __timestamps__ = False __fillable__ = ['name'] class Book(Model): __timestamps__ = False __fillable__ = ['canonical_name'] class AlternativeBookName(Model): __timestamps__ = False __fillable__ = ['book', 'name'] class Verse(Model): __timestamps__ = False __fillable__ = ['book', 'chapter', 'nr'] class Translation(Model): __timestamps__ = False __fillable__ = ['name'] class TranslatedVerse(Model): __timestamps__ = False __table__ = 'translated_verses' __fillable__ = ['translation', 'book', 'chapter', 'nr', 'text'] class Passage(Model): __timestamps__ = False __fillable__ = ['fst', 'snd'] class CrossReference(Model): __fillable__ = ['passage_id1', 'passage_id2', 'relevance'] def setup_fill_alternative_book_names(db): with open('alternative_book_names.csv', 'r') as csvfile: reader = csv.reader(csvfile, delimiter=',', quotechar='"') db.begin_transaction() for names in reader: canonical_name = names[0] Book.first_or_create(canonical_name=canonical_name) for name in names: AlternativeBookName.first_or_create( book=canonical_name, name=name) db.commit()