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