docs
docs copied to clipboard
Document how to use Prisma in monorepos
e.g. using:
- Yarn workspaces
- Lerna
- ngx
Note that there's a simple example with Yarn workspaces here: https://github.com/nikolasburk/monorepo-prisma
More context on the internal Slack:
screenshot
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
Related https://github.com/vercel/turborepo/pull/979#issuecomment-1183444069
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.