22import json
33from decimal import Decimal
44
5- from sqlalchemy import create_engine
6- from sqlalchemy .orm import Session , scoped_session , sessionmaker
7-
85import database .events # noqa: F401
96from database .models .timeseries import TimeseriesBaseModel
107from shared .config import get_config
118from shared .timeseries .helpers import is_timeseries_enabled
129from shared .utils .ReportEncoder import ReportEncoder
10+ from sqlalchemy import create_engine
11+ from sqlalchemy .orm import Session , scoped_session , sessionmaker
1312
1413from .base import Base
1514
@@ -33,8 +32,8 @@ def json_dumps(d):
3332
3433class SessionFactory :
3534 def __init__ (self , database_url , timeseries_database_url = None ):
36- self .database_url = database_url
37- self .timeseries_database_url = timeseries_database_url
35+ self .database_url = _fix_engine ( database_url )
36+ self .timeseries_database_url = _fix_engine ( timeseries_database_url )
3837 self .main_engine = None
3938 self .timeseries_engine = None
4039
@@ -54,7 +53,7 @@ def create_session(self):
5453 timeseries_engine = self .timeseries_engine
5554
5655 class RoutingSession (Session ):
57- def get_bind (self , mapper = None , clause = None ):
56+ def get_bind (self , mapper = None , clause = None , ** kwargs ):
5857 if mapper is not None and issubclass (
5958 mapper .class_ , TimeseriesBaseModel
6059 ):
@@ -74,16 +73,20 @@ def get_bind(self, mapper=None, clause=None):
7473 return scoped_session (session_factory )
7574
7675
76+ def _fix_engine (database_url : str ) -> str :
77+ return database_url .replace ("postgres://" , "postgresql://" )
78+
79+
7780session_factory = SessionFactory (
7881 database_url = get_config (
7982 "services" ,
8083 "database_url" ,
81- default = "postgres ://postgres:@postgres:5432/postgres" ,
84+ default = "postgresql ://postgres:@postgres:5432/postgres" ,
8285 ),
8386 timeseries_database_url = get_config (
8487 "services" ,
8588 "timeseries_database_url" ,
86- default = "postgres ://postgres:@timescale:5432/postgres" ,
89+ default = "postgresql ://postgres:@timescale:5432/postgres" ,
8790 ),
8891)
8992
0 commit comments