Skip to content

Commit 02dbeba

Browse files
Merge pull request Azure-Samples#1 from bobtabor/cherrypick-updates
Fixes
2 parents 3c4bb68 + 07da770 commit 02dbeba

2 files changed

Lines changed: 26 additions & 12 deletions

File tree

‎src/fastapi_app/models.py‎

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,34 @@
11
import os
22
import typing
33
from datetime import datetime
4+
from urllib.parse import quote_plus
45

56
from sqlmodel import Field, SQLModel, create_engine
67

7-
POSTGRES_USERNAME = os.environ.get("POSTGRES_USERNAME")
8-
POSTGRES_PASSWORD = os.environ.get("POSTGRES_PASSWORD")
9-
POSTGRES_HOST = os.environ.get("POSTGRES_HOST")
10-
POSTGRES_DATABASE = os.environ.get("POSTGRES_DATABASE")
11-
POSTGRES_PORT = os.environ.get("POSTGRES_PORT", 5432)
12-
POSTGRES_SSL = os.environ.get("POSTGRES_SSL")
13-
14-
sql_url = f"postgresql://{POSTGRES_USERNAME}:{POSTGRES_PASSWORD}@{POSTGRES_HOST}:{POSTGRES_PORT}/{POSTGRES_DATABASE}"
15-
if POSTGRES_SSL:
16-
sql_url = f"{sql_url}?sslmode={POSTGRES_SSL}"
8+
sql_url = ""
9+
if os.getenv("AZURE_POSTGRESQL_CONNECTIONSTRING"):
10+
env_connection_string = os.getenv("AZURE_POSTGRESQL_CONNECTIONSTRING")
11+
12+
# Parse the connection string
13+
details = dict(item.split('=') for item in env_connection_string.split())
14+
15+
# Properly format the URL for SQLAlchemy
16+
sql_url = (
17+
f"postgresql://{quote_plus(details['user'])}:{quote_plus(details['password'])}"
18+
f"@{details['host']}:{details['port']}/{details['dbname']}?sslmode={details['sslmode']}"
19+
)
20+
21+
else:
22+
POSTGRES_USERNAME = os.environ.get("DBUSER")
23+
POSTGRES_PASSWORD = os.environ.get("DBPASS")
24+
POSTGRES_HOST = os.environ.get("DBHOST")
25+
POSTGRES_DATABASE = os.environ.get("DBNAME")
26+
POSTGRES_PORT = os.environ.get("DBPORT", 5432)
27+
POSTGRES_SSL = os.environ.get("DBSSL")
28+
29+
sql_url = f"postgresql://{POSTGRES_USERNAME}:{POSTGRES_PASSWORD}@{POSTGRES_HOST}:{POSTGRES_PORT}/{POSTGRES_DATABASE}"
30+
if POSTGRES_SSL:
31+
sql_url = f"{sql_url}?sslmode={POSTGRES_SSL}"
1732

1833
engine = create_engine(sql_url)
1934

‎src/fastapi_app/seed_data.py‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1+
import models
12
from sqlmodel import SQLModel
23

3-
from fastapi_app import models
4-
54

65
def load_from_json():
76
models.create_db_and_tables()

0 commit comments

Comments
 (0)