Skip to content
Snippets Groups Projects
Commit 0dc6f7fb authored by Maximilian Loch's avatar Maximilian Loch
Browse files

added option to give table name in config file

parent 5d534b99
No related branches found
No related tags found
No related merge requests found
......@@ -16,13 +16,14 @@ if __name__ == '__main__':
dbname={conn_config['connection']['dbname']}
user={conn_config['connection']['user']}
password={conn_config['connection']['pwd']}"""
table = conn_config["connection"]['table']
url = conn_config['connection']['url']
my_db = DBTools(conn_str)
my_api = APITools(url)
schulen = my_db.select_uri()
schulen = my_db.select_uri(table)
lenschule = len(schulen)
i = 1
......@@ -30,7 +31,7 @@ if __name__ == '__main__':
print(str(i) + "/" + str(lenschule))
if item[0] is not None:
adresse = my_api.findadresse(item[0])
my_db.update_adress(adresse, item[0])
my_db.update_adress(adresse, item[0], table)
else:
print("hat keine URI")
......
......@@ -5,3 +5,4 @@ dbname=database name
user=username
pwd=password
url=API url
table=tablename
\ No newline at end of file
......@@ -15,6 +15,7 @@ if __name__ == '__main__':
dbname={conn_config['connection']['dbname']}
user={conn_config['connection']['user']}
password={conn_config['connection']['pwd']}"""
table = conn_config['connection']['table']
url = conn_config['connection']['url']
# logfile = r"geocoder.log"
......@@ -22,7 +23,7 @@ if __name__ == '__main__':
my_db = DBTools(conn_str)
my_api = APITools(url)
schulen = my_db.select_adress()
schulen = my_db.select_adress(table)
adresse = {}
maxfeatures = len(schulen)
numfeatures = 0
......@@ -40,7 +41,7 @@ if __name__ == '__main__':
if areg_response.get("uri") is not None:
areg_uri = areg_response["uri"]
my_db.update_uri(str(item[0]), areg_uri)
my_db.update_uri(str(item[0]), areg_uri, table)
numfeatures += 1
else:
areg_response_key = list(areg_response.keys())
......
......@@ -21,7 +21,7 @@ class DBTools:
self.db_connection = psycopg2.connect(conn)
self.cursor = self.db_connection.cursor()
def select_adress(self) -> "list[tuple[str, ... ]]":
def select_adress(self, table: str) -> "list[tuple[str, ... ]]":
"""Selektieren der Adressdaten
Funktion zum selektieren der Adressdaten der Schulen aus der Datenbank.
......@@ -32,12 +32,16 @@ class DBTools:
* PLZ
* Ortsname
Args:
table: Name der Tabelle aus welcher die Adressen selektiert werden
sollen
Returns:
Liste mit mehreren Tupeln welche die Adressdaten der
Schulen enthalten.
"""
select_sql = """
select_sql = f"""
select
lokaleID,
adressealt_hnr,
......@@ -45,29 +49,33 @@ class DBTools:
adressealt_plz,
adressealt_ort
from
prototyp_areg.schulen;"""
{table};"""
self.cursor.execute(select_sql)
query_result = self.cursor.fetchall()
return query_result
def select_uri(self) -> "list[tuple[str, ... ]]":
def select_uri(self, table: str) -> "list[tuple[str, ... ]]":
"""Selektieren der AREG URI
Funktion zum selektieren der URI aus dem Datensatz um diese mit
aktuellen AREG Adressdaten anzureichern.
Args:
table: Name der Tabelle aus welcher die Adressen selektiert werden
sollen
Returns:
Liste mit meheren Tupeln welche die AREG URI enthalten.
Es wird sichergestellt, dass keine NULL Werte vorkommen.
"""
select_sql = """
select_sql = f"""
select
distinct(areg_uri)
from
prototyp_areg.schulen
{table}
where
areg_uri like 'https://%';"""
......@@ -76,7 +84,7 @@ class DBTools:
return query_data
def update_uri(self, param_dbid: str, param_uri: str) -> None:
def update_uri(self, param_dbid: str, param_uri: str, table: str) -> None:
"""Update der URI in der DB
Funktion zum Update der Datenbank mit den neuen URI aus dem Geocoder.
......@@ -84,18 +92,20 @@ class DBTools:
Args:
param_dbid: ID der Schule aus der Datenbank (nicht AREG URI)
param_uri: AREG URI
table: Name der Tabelle aus welcher die Adressen selektiert werden
sollen
"""
sql_alter = """
sql_alter = f"""
alter table
prototyp_areg.schulen
{table}
add column if not exists
areg_uri varchar;
"""
sql_update = f"""
update
prototyp_areg.schulen
{table}
set
areg_uri='{param_uri}'
where
......@@ -105,7 +115,7 @@ class DBTools:
self.cursor.execute(sql_alter)
self.cursor.execute(sql_update)
def update_adress(self, data: "dict[str,str]", param_uri: str) -> None:
def update_adress(self, data: "dict[str,str]", param_uri: str, table: str) -> None: # noqa
"""Updaten der Adressen mit AREG URI
Funktion zum Update der Datenbank mit den neuen Adressdaten aus dem
......@@ -114,13 +124,15 @@ class DBTools:
Args:
data: Dictionary mit neuen Adressdaten aus der AREG API
param_uri: AREG URI zum zuordnen der Adressdaten
table: Name der Tabelle aus welcher die Adressen selektiert werden
sollen
"""
geometry = str(data['geometry'])
geometry = geometry.replace("'", '"')
sql_alter = """
sql_alter = f"""
alter table
prototyp_areg.schulen
{table}
add column if not exists
hnr varchar,
add column if not exists
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment