Skip to content

Commit 9c06117

Browse files
committed
Bump sqlalchemy version
Previously, `worker` would pin this to v1.3, but that would then fail tests within `shared` in a common workspace, as some tests in `shared` depend on v1.4 features.
1 parent e9bcc09 commit 9c06117

8 files changed

Lines changed: 86 additions & 28 deletions

File tree

apps/worker/database/base.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22

33
from sqlalchemy import Column, types
44
from sqlalchemy.dialects.postgresql import UUID
5-
from sqlalchemy.ext.declarative import declarative_base
6-
from sqlalchemy.orm import Session
5+
from sqlalchemy.orm import Session, declarative_base
76

87
from helpers.clock import get_utc_now
98

apps/worker/database/engine.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@
22
import json
33
from decimal import Decimal
44

5-
from sqlalchemy import create_engine
6-
from sqlalchemy.orm import Session, scoped_session, sessionmaker
7-
85
import database.events # noqa: F401
96
from database.models.timeseries import TimeseriesBaseModel
107
from shared.config import get_config
118
from shared.timeseries.helpers import is_timeseries_enabled
129
from shared.utils.ReportEncoder import ReportEncoder
10+
from sqlalchemy import create_engine
11+
from sqlalchemy.orm import Session, scoped_session, sessionmaker
1312

1413
from .base import Base
1514

@@ -33,8 +32,8 @@ def json_dumps(d):
3332

3433
class 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+
7780
session_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

apps/worker/pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ dependencies = [
3939
"requests>=2.32.0",
4040
"sentry-sdk>=2.13.0",
4141
"shared",
42-
"sqlalchemy==1.3.*",
43-
"sqlparse==0.5.0",
42+
"sqlalchemy<2",
43+
"sqlparse>=0.5.0",
4444
"statsd>=3.3.0",
4545
"stripe>=11.4.1",
4646
"test-results-parser",

apps/worker/ta_storage/pg.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,15 @@ def get_repo_flag_ids(db_session: Session, repoid: int, flags: list[str]) -> set
3737
if not flags:
3838
return set()
3939

40-
return set(
41-
db_session.query(RepositoryFlag.id_)
40+
return {
41+
flag.id_
42+
for flag in db_session.query(RepositoryFlag.id_)
4243
.filter(
4344
RepositoryFlag.repository_id == repoid,
4445
RepositoryFlag.flag_name.in_(flags),
4546
)
4647
.all()
47-
)
48+
}
4849

4950

5051
def modify_structures(

apps/worker/tasks/test_results_processor.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,15 @@ def get_repo_flag_ids(db_session: Session, repoid: int, flags: list[str]) -> set
4545
if not flags:
4646
return set()
4747

48-
return set(
49-
db_session.query(RepositoryFlag.id_)
48+
return {
49+
flag.id_
50+
for flag in db_session.query(RepositoryFlag.id_)
5051
.filter(
5152
RepositoryFlag.repository_id == repoid,
5253
RepositoryFlag.flag_name.in_(flags),
5354
)
5455
.all()
55-
)
56+
}
5657

5758

5859
def create_daily_totals(

apps/worker/uv.lock

Lines changed: 31 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tools/devenv/config/test.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ setup:
1717
receive: 15
1818

1919
services:
20-
database_url: postgres://postgres:password@postgres:5432/postgres
21-
timeseries_database_url: postgres://postgres:password@timescale:5432/postgres
20+
database_url: postgresql://postgres:password@postgres:5432/postgres
21+
timeseries_database_url: postgresql://postgres:password@timescale:5432/postgres
2222
redis_url: redis://redis:6379
2323
minio:
2424
hash_key: testixik8qdauiab1yiffydimvi72ekq # never change this

uv.lock

Lines changed: 31 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)