build(schema.prisma): support direct url on prisma schema

This commit is contained in:
Krrish Dholakia 2024-02-08 17:37:22 -08:00
parent f473d59c23
commit ff93609453
3 changed files with 20 additions and 7 deletions

View file

@ -424,14 +424,25 @@ def run_server(
if database_url is not None and isinstance(database_url, str): if database_url is not None and isinstance(database_url, str):
os.environ["DATABASE_URL"] = database_url os.environ["DATABASE_URL"] = database_url
if os.getenv("DATABASE_URL", None) is not None: if (
os.getenv("DATABASE_URL", None) is not None
or os.getenv("DIRECT_URL", None) is not None
):
try: try:
### add connection pool + pool timeout args if os.getenv("DATABASE_URL", None) is not None:
params = {"connection_limit": 100, "pool_timeout": 60} ### add connection pool + pool timeout args
database_url = os.getenv("DATABASE_URL") params = {"connection_limit": 100, "pool_timeout": 60}
modified_url = append_query_params(database_url, params) database_url = os.getenv("DATABASE_URL")
os.environ["DATABASE_URL"] = modified_url modified_url = append_query_params(database_url, params)
### os.environ["DATABASE_URL"] = modified_url
###
if os.getenv("DIRECT_URL", None) is not None:
### add connection pool + pool timeout args
params = {"connection_limit": 100, "pool_timeout": 60}
database_url = os.getenv("DIRECT_URL")
modified_url = append_query_params(database_url, params)
os.environ["DIRECT_URL"] = modified_url
###
subprocess.run(["prisma"], capture_output=True) subprocess.run(["prisma"], capture_output=True)
is_prisma_runnable = True is_prisma_runnable = True
except FileNotFoundError: except FileNotFoundError:

View file

@ -1,6 +1,7 @@
datasource client { datasource client {
provider = "postgresql" provider = "postgresql"
url = env("DATABASE_URL") url = env("DATABASE_URL")
directUrl = env("DIRECT_URL")
} }
generator client { generator client {

View file

@ -1,6 +1,7 @@
datasource client { datasource client {
provider = "postgresql" provider = "postgresql"
url = env("DATABASE_URL") url = env("DATABASE_URL")
directUrl = env("DIRECT_URL")
} }
generator client { generator client {