fix use normal prisma

This commit is contained in:
Ishaan Jaff 2024-08-14 09:24:22 -07:00
parent fef6f50e23
commit 6f06da7d46
2 changed files with 11 additions and 50 deletions

View file

@ -832,17 +832,17 @@ class PrismaClient:
dname = os.path.dirname(abspath)
os.chdir(dname)
# try:
# subprocess.run(["prisma", "generate"])
# subprocess.run(
# ["prisma", "db", "push", "--accept-data-loss"]
# ) # this looks like a weird edge case when prisma just wont start on render. we need to have the --accept-data-loss
# except Exception as e:
# raise Exception(
# f"Unable to run prisma commands. Run `pip install prisma` Got Exception: {(str(e))}"
# )
# finally:
# os.chdir(original_dir)
try:
subprocess.run(["prisma", "generate"])
subprocess.run(
["prisma", "db", "push", "--accept-data-loss"]
) # this looks like a weird edge case when prisma just wont start on render. we need to have the --accept-data-loss
except Exception as e:
raise Exception(
f"Unable to run prisma commands. Run `pip install prisma` Got Exception: {(str(e))}"
)
finally:
os.chdir(original_dir)
# Now you can import the Prisma Client
from prisma import Prisma # type: ignore
verbose_proxy_logger.debug("Connecting Prisma Client to DB..")

View file

@ -1,39 +0,0 @@
import os
import importlib
from pathlib import Path
# Get the location of the 'prisma' package
package_name = "prisma"
spec = importlib.util.find_spec(package_name)
print("spec = ", spec) # noqa
if spec and spec.origin:
print("spec origin= ", spec.origin) # noqa
_base_prisma_package_dir = os.path.dirname(spec.origin)
print("base prisma package dir = ", _base_prisma_package_dir) # noqa
else:
raise ImportError(f"Package {package_name} not found.")
def ensure_prisma_has_writable_dirs(path: str | Path) -> None:
import stat
for root, dirs, _ in os.walk(path):
for directory in dirs:
dir_path = os.path.join(root, directory)
os.makedirs(dir_path, exist_ok=True)
print("making dir for prisma = ", dir_path)
os.chmod(dir_path, os.stat(dir_path).st_mode | stat.S_IWRITE | stat.S_IEXEC)
# make this file writable - prisma/schema.prisma
file_path = os.path.join(path, "schema.prisma")
print("making file for prisma = ", file_path)
# make entire directory writable
os.chmod(path, os.stat(path).st_mode | stat.S_IWRITE | stat.S_IEXEC)
os.chmod(file_path, os.stat(file_path).st_mode | stat.S_IWRITE | stat.S_IEXEC)
# Use the package directory in your method call
ensure_prisma_has_writable_dirs(path=_base_prisma_package_dir)