Open nikolasburk opened 3 years ago
I would like to add nrwl/nx
( https://github.com/nrwl/nx ) to the list of monorepos.
Vercel just bought Turborepo I think this is going to become very important very quickly!
From what I've been testing, doesn't actually work when using ENV variables unless I place the .env
file in the prisma directory.
So for instance, I have this monorepo with yarn workspaces
|- packages/
|- server/
|- package.json
|- prisma/
|- schema.prisma
|- package.json
|- package.json
|- .env
Seems like it needs to have the .env
file in side the prisma
directory instead of reading the file from the file on root
Yes please, also declaring .env
files on the root of the monorepo break prisma env()
function if prisma schema is not located at prisma/schema.prisma
From what I've been testing, doesn't actually work when using ENV variables unless I place the
.env
file in the prisma directory.So for instance, I have this monorepo with yarn workspaces
|- packages/ |- server/ |- package.json |- prisma/ |- schema.prisma |- package.json |- package.json |- .env
Seems like it needs to have the
.env
file in side theprisma
directory instead of reading the file from the file on root
Yes! +1 to this 🙌🏽
EDIT: Relevant issue as well prisma/prisma#12535
Related example: https://github.com/vercel/turborepo/tree/main/examples/with-prisma
I have an issue with monorepo using npm workspaces and prisma. The set up is there are two microservices that both use prisma (say packages/api1, packages/api2). If the same version of prisma is used in each, npm will create @prisma in the root node_modules. The generated .prisma files are installed as a sibling to @prisma, so api1 and api2 can clobber each other. One can specify where to generate the files, however, other dependencies (i.e. nestjs) uses @prisma/client to import, so the new location is ignored.
however, other dependencies (i.e. nestjs) uses @prisma/client to import, so the new location is ignored.
@kokokenada Do you think this could be configurable in your NestJS app? If no, it might be worth opening an issue in the nest
repo or submit a PR to add this option.
Thanks for the reply @nikolasburk, and yes, I also opened a ticket there: https://github.com/nestjs/nest/issues/10150 and moved to https://github.com/notiz-dev/nestjs-prisma/issues/31
I have the same issue as @kokoenada . I can't have a turborepo monorepo with two different Prisma schemas - Prisma gets confused about which schema to use.
I came across this thread whilst looking for a solution to this: https://github.com/vercel/turbo/discussions/5610
Wondering if anyone has experienced a similar issue?
Edited: found the fix, see here in case it's of use to anyone: https://www.prisma.io/docs/guides/other/troubleshooting-orm/help-articles/nextjs-prisma-client-monorepo
For my case where the monorepo will have multiple packages with different schemas, I opted to generate separate prisma clients into separate directories.
// packages/accounts/prisma.schema
generator client {
provider = "prisma-client-js"
output = "./node_modules/@prisma/accounts-client" // <-- note this
// output = "./node_modules/@prisma/dashboard-client" // <-- for other package "dashboard"
}
// pacakges/accounts/src/...
import { PrismaClient } from '@prisma/accounts-client';
// ...
Can anyone tell me if this is OK approach or I will have some unexpected issues along the way?
e.g. using:
Note that there's a simple example with Yarn workspaces here: https://github.com/nikolasburk/monorepo-prisma
More context on the internal Slack:
screenshot
![image](https://user-images.githubusercontent.com/4058327/107616595-ab2c7b00-6c4e-11eb-86a0-97c19dad155a.png)