Skip to content

Commit d21a2e7

Browse files
authored
Merge pull request #202 from UW-Macrostrat/stats-post
Change env var setup
2 parents 89f3e24 + 2670b0f commit d21a2e7

File tree

5 files changed

+48
-12
lines changed

5 files changed

+48
-12
lines changed

services/usage-stats/sample.env

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
# For both URLs, the correct driver is added by the container
2+
13
# Matomo connection
2-
MARIADB_URL=<url>
4+
MARIADB_URL=<"mysql://user:password@localhost:3306/database">
35

46
# Macrostrat connection
5-
DATABASE_URL=<url>
7+
DATABASE_URL=<"postgresql://user:pass@localhost:5432/dbname">

services/usage-stats/src/insert.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,17 @@
77

88
load_dotenv()
99

10-
DATABASE_URL = os.getenv("DATABASE_URL")
10+
raw_url = os.getenv("DATABASE_URL")
11+
12+
# Ensure it uses asyncpg
13+
if raw_url.startswith("postgresql://"):
14+
raw_url = raw_url.replace("postgresql://", "postgresql+asyncpg://", 1)
15+
elif not raw_url.startswith("postgresql+asyncpg://"):
16+
raise ValueError(
17+
"Invalid DATABASE_URL: must start with postgresql:// or postgresql+asyncpg://"
18+
)
19+
20+
DATABASE_URL = raw_url
1121

1222
engine = create_async_engine(DATABASE_URL, echo=True)
1323

services/usage-stats/src/last_id.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,17 @@
77

88
load_dotenv()
99

10-
DATABASE_URL = os.getenv("DATABASE_URL")
10+
raw_url = os.getenv("DATABASE_URL")
11+
12+
# Ensure it uses asyncpg
13+
if raw_url.startswith("postgresql://"):
14+
raw_url = raw_url.replace("postgresql://", "postgresql+asyncpg://", 1)
15+
elif not raw_url.startswith("postgresql+asyncpg://"):
16+
raise ValueError(
17+
"Invalid DATABASE_URL: must start with postgresql:// or postgresql+asyncpg://"
18+
)
19+
20+
DATABASE_URL = raw_url
1121

1222
engine = create_async_engine(DATABASE_URL, echo=True)
1323

services/usage-stats/src/macrostrat.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,17 @@
99

1010
BATCH_SIZE = 1000 # Adjust as needed
1111

12-
# Database URL format: mysql+asyncmy://user:password@host:port/database
13-
DATABASE_URL = os.getenv(
14-
"MARIADB_URL", "mysql+asyncmy://user:password@localhost:3306/database"
15-
)
12+
raw_url = os.getenv("MARIADB_URL")
13+
14+
# Ensure the URL uses asyncmy driver
15+
if raw_url.startswith("mysql://"):
16+
raw_url = raw_url.replace("mysql://", "mysql+asyncmy://", 1)
17+
elif not raw_url.startswith("mysql+asyncmy://"):
18+
raise ValueError(
19+
"Invalid DATABASE_URL: must start with mysql:// or mysql+asyncmy://"
20+
)
21+
22+
DATABASE_URL = raw_url
1623

1724
# Create async engine
1825
engine = create_async_engine(DATABASE_URL, echo=True)

services/usage-stats/src/rockd.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,17 @@
1010

1111
BATCH_SIZE = 1000 # Adjust batch size as needed
1212

13-
# Database URL format: mysql+asyncmy://user:password@host:port/database
14-
DATABASE_URL = os.getenv(
15-
"MARIADB_URL", "mysql+asyncmy://user:password@localhost:3306/database"
16-
)
13+
raw_url = os.getenv("MARIADB_URL")
14+
15+
# Ensure the URL uses asyncmy driver
16+
if raw_url.startswith("mysql://"):
17+
raw_url = raw_url.replace("mysql://", "mysql+asyncmy://", 1)
18+
elif not raw_url.startswith("mysql+asyncmy://"):
19+
raise ValueError(
20+
"Invalid DATABASE_URL: must start with mysql:// or mysql+asyncmy://"
21+
)
22+
23+
DATABASE_URL = raw_url
1724

1825
# Create async SQLAlchemy engine
1926
engine = create_async_engine(DATABASE_URL, echo=True)

0 commit comments

Comments
 (0)