Einzelnen Beitrag anzeigen
  #6  
Alt 12.10.2020, 16:13
sonki sonki ist offline
Erfahrener Benutzer
 
Registriert seit: 10.05.2018
Beiträge: 2.916
Standard

Hallo,

prinzipiell kann man per Python sowas machen. Hier mal als grobe Anregung ein Beispiel wie man z.b. Repositories und Quellen in die Datenbank hinzufügen kann:

Im Beispiel füge ich ein Repository mit dem Namen "Archiv ABC" sowie eine Quelle mit Namen "Kirchenbuch XYZ" hinzu. In der Praxis könnte man hier noch den Typ einstellen und alle anderen Parameter die es so gibt. Auch Verknüpfungen untereinander sind so möglich.

Werte in <VARIABLE> müssen jeweils angepasst werden. Die Pfade müssten logischerweise auch angepasst werden - mein System ist aktuell Win64 mit Gramps 5.1.3.

Disclaimer: Ist hier ein schnell zusammengeschusterter Code. Ein Test hat zwar gezeigt das es funktioniert, aber ich habe keine Ahnung ob man das so wie im unten angefügten Code macht. Auch sind absolut keine Checks eingebaut, halt einfach nur ein proof-of-concept.

Code:
import sys
import os
import sqlite3

os.environ['GRAMPS_RESOURCES'] = 'C:/Users/<USERNAME>/AppData/Local/GrampsAIO64-5.1.3/share'
sys.path.append(r'C:\Users\<USERNAME>\AppData\Local\GrampsAIO64-5.1.3')

from gramps.gen.dbstate import DbState
from gramps.plugins.db.dbapi import sqlite
from gramps.gen.lib import Repository, Source
from gramps.gen.db.txn import DbTxn

db = sqlite.SQLite('C:/Users/<USERNAME>/AppData/Roaming/gramps/grampsdb/<DB_ID>')

####################################
source = Source()
source.set_title('Kirchenbuch XYZ')
transaction = DbTxn('msg', db)
db.add_source(source, transaction)
db.transaction_commit(transaction)
####################################
repo = Repository()
repo.set_name('Archiv ABC')
transaction = DbTxn('msg', db)
db.add_repository(repo, transaction)
db.transaction_commit(transaction)
####################################
db.close()
D.h. theoretisch könnte man das so aufbohren, das ein csv eingelesen wird und daraus in einer Schleife obiger Code (die Teile in den ######) durchlaufen wird.

Geändert von sonki (12.10.2020 um 16:17 Uhr)
Mit Zitat antworten