tsi-unito / UnitoBOT

Un bot di telegram per la gestione dei gruppi, links, moderazione ed appunti dell'Università degli Studi di Torino
GNU General Public License v3.0
3 stars 1 forks source link

Remove hardcoded db URL #18

Closed lory9894 closed 1 year ago

lory9894 commented 1 year ago

ho notato che l'URL del db (questo per capirci)

engine = create_engine(sqlalchemy.URL.create(
        "postgresql",
        username="bot",
        # Adding the parsing already in preparation for the settings file.
        password=urllib.parse.quote_plus("bot"),
        host="localhost",
        database="bot"
    ))

Ha dentro qualche parametro che non dovrebbe essere harcoded.

A parte password, username e database, quello più critico è host. ad esempio se, anche solo, volessimo deployare su docker l'host cambia ed è scomodo andare a modificare i parametri hardcoded

Si può pensare di andare a specificare tali parametri tramite environment variables, se poi quando il codice viene eseguito queste non sono state specificate allora nel codice stesso vengono impostate come sopra (username bot, host localhost etc...)

questo anche nell'ottica modulare di slegarsi dal db. se uno non volesse usare postgres ad esempio basta che cambi una variabile d'ambiente ed ha fatto

stefa168 commented 1 year ago

Assolutamente, la possibilità di cambiare la config è giusto che stia in un file a parte (aggiorniamo quindi anche il compose)

Non sono sicuro che sia totalmente giusto però lasciare l'uso di altri DB, il fatto è che PG è l'unico che attualmente rispetta tutte le definizioni dello standard SQL

lory9894 commented 1 year ago

Ah vabbè. Noi facciamolo modulare. In luce di quello che hai detto allora non metterei la stringa "postgresql" come variabile ma la lascerei hardcoded