Levi
04/07/2022, 1:26 PMRenato Carneiro
04/07/2022, 4:42 PMArthur Cachero
04/07/2022, 5:38 PM"@prisma/client": "^3.12.0",
module.exports = {
semi: true,
singleQuote: true,
trailingComma: 'all',
printWidth: 100,
arrowParens: 'always',
tabWidth: 4,
};
Adrien Wald
04/07/2022, 11:40 PMError: Command failed with exit code 254: npx prisma migrate deploy
Adrien Wald
04/07/2022, 11:40 PMAdrien Wald
04/07/2022, 11:40 PMconst response = require('cfn-response')
const path = require('path')
const schema = path.join(__dirname, '..', 'prisma', 'schema.prisma')
async function applyMigration() {
const execaCommand = (await import('execa')).execaCommand
const subprocess = execaCommand(`npx prisma migrate deploy --schema=${schema}`)
subprocess.stdout.pipe(process.stdout)
subprocess.stderr.pipe(process.stderr)
await subprocess
.catch((e) => {
console.error(e)
throw new Error('Migration failed!')
})
}
async function handler(event, context) {
console.log('Received event: ', JSON.stringify(event, null, 2))
if (event.RequestType === 'Delete') return
await applyMigration()
.then(() => response.send(event, context, response.SUCCESS, 'ok'))
.catch((error) => response.send(event, context, response.ERROR, error.message))
}
exports.handler = handler
Noit
04/08/2022, 2:09 AMType error: Property 'event' does not exist on type 'PrismaClient<PrismaClientOptions, never, RejectOnNotFound | RejectPerOperation | undefined>'.
It points to this line:
return prisma.event.findUnique({
This works fine in my local dev. Any ideas why it won't deploy? Is Vercel maybe caching some build stuff so it can't see the new prisma model?Wahyu
04/08/2022, 6:56 AMElitedev
04/08/2022, 7:01 AMJannik Köster
04/08/2022, 12:07 PMJannik Köster
04/08/2022, 12:08 PMJannik Köster
04/08/2022, 12:08 PMJannik Köster
04/08/2022, 12:35 PMBiffBish
04/08/2022, 2:33 PMDavid Marr
04/08/2022, 3:34 PMVinay Prabhu
04/08/2022, 3:46 PMSJ
04/08/2022, 4:20 PMOrcioly Andrade Alves
04/08/2022, 5:02 PMimport { AppError } from '../shared/errors/AppError';
import prismaClient from '../prisma';
import { UserPermissionRole } from '@prisma/client';
import { CreateUserPermissionRoleDTO } from '../dtos/create_user_permission_role_service/CreateUserPermissionRoleDTO';
// type UserPermissionRoleRequest = {
// user_id: string;
// role_id: string;
// permission_id: string;
// };
class CreateUserPermissionRoleService {
async execute({
user_id,
role_id,
permission_id,
}: CreateUserPermissionRoleDTO): Promise<UserPermissionRole> {
const roleAlreadyExists = await prismaClient.userPermissionRole.findFirst({
where: {
role: {
/**
*
* To implement
*
*/
},
},
});
// console.log(roleAlreadyExists);
if (!roleAlreadyExists) {
throw new AppError('Role does not exists.');
}
const userPermissionRoleExists =
await prismaClient.userPermissionRole.create({
data: {
user_id,
role_id,
permission_id,
},
});
return userPermissionRoleExists;
}
}
export { CreateUserPermissionRoleService };
schema.prisma;
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model User {
id String @id @default(uuid())
name String
email String @unique
password String
isAdmin Boolean @default(false)
created_at DateTime @default(now())
updated_at DateTime @updatedAt
Client Client[]
userpermissionrole UserPermissionRole[]
@@map("users")
}
model Client {
id String @id @default(uuid())
user_id String
name User @relation(fields: [user_id], references: [id])
address String
city String
district String
state String
zipcode String
cnpj String @unique
stateregistered String
telephone String
mobile String
active Boolean
created_at DateTime @default(now())
updated_at DateTime @updatedAt
Order OrderClient[]
@@map("clients")
}
model Product {
id String @id @default(uuid())
followUp String
fabric String?
name String
size String
color String
status String
code_karsten String
price Decimal @default(0.00)
isActive Boolean
created_at DateTime @default(now())
updated_at DateTime @updatedAt
Order OrderClient[]
@@map("products")
}
model OrderClient {
id String @id @default(uuid())
name Client @relation(fields: [client_id], references: [id])
client_id String
product Product @relation(fields: [product_id], references: [id])
product_id String
quantity Int
size String
color String
status String
code_karsten String
price Decimal @default(0.00)
liquid Decimal @default(0.00)
priceTotal Decimal @default(0.00)
created_at DateTime @default(now())
updated_at DateTime @updatedAt
@@map("orders_clients")
}
model Role {
id String @id @default(uuid())
name String
description String
created_at DateTime @default(now())
updated_at DateTime @updatedAt
permissions UserPermissionRole[]
@@map("roles")
}
model Permission {
id String @id @default(uuid())
name String
description String
created_at DateTime @default(now())
updated_at DateTime @updatedAt
roles UserPermissionRole[]
@@map("permissions")
}
model UserPermissionRole {
id String @id @default(uuid())
user_id String
user User @relation(fields: [user_id], references: [id])
role_id String
role Role @relation(fields: [role_id], references: [id])
permission_id String
permission Permission @relation(fields: [permission_id], references: [id])
created_at DateTime @default(now())
updated_at DateTime @updatedAt
@@map("permission_roles")
}
Something like this, I did just to try to show the idea of what I was thinking, but it didn't work.
import { AppError } from '../shared/errors/AppError';
import prismaClient from '../prisma';
import { UserPermissionRole } from '@prisma/client';
import { CreateUserPermissionRoleDTO } from '../dtos/create_user_permission_role_service/CreateUserPermissionRoleDTO';
// type UserPermissionRoleRequest = {
// user_id: string;
// role_id: string;
// permission_id: string;
// };
class CreateUserPermissionRoleService {
async execute({
id,
user_id,
role_id,
permission_id,
}: CreateUserPermissionRoleDTO): Promise<UserPermissionRole> {
const roleAlreadyExists = await prismaClient.userPermissionRole.findFirst({
where: {
role: {
id,
},
},
});
if (roleAlreadyExists) {
throw new AppError('Role does not exists.');
}
const userPermissionRoleExists =
await prismaClient.userPermissionRole.create({
data: {
user_id,
role_id,
permission_id,
},
});
return userPermissionRoleExists;
}
}
export { CreateUserPermissionRoleService };
I CAN SOLVE IT THIS WAY:
import { AppError } from '../shared/errors/AppError';
import prismaClient from '../prisma';
import { UserPermissionRole } from '@prisma/client';
import { CreateUserPermissionRoleDTO } from '../dtos/create_user_permission_role_service/CreateUserPermissionRoleDTO';
class CreateUserPermissionRoleService {
async execute({
user_id,
role_id,
permission_id,
}: CreateUserPermissionRoleDTO): Promise<UserPermissionRole> {
try {
const userPermissionRoleExists =
await prismaClient.userPermissionRole.create({
data: {
user_id,
role_id,
permission_id,
},
});
return userPermissionRoleExists;
} catch {
throw new AppError('User or role or permission doesnt exists!');
}
}
}
export { CreateUserPermissionRoleService };
BiffBish
04/08/2022, 10:27 PMBiffBish
04/08/2022, 10:29 PMreturn await prisma.user.findFirst({
select: {
oculus_id: true,
oculus_name: true,
},
include:{
daily_stats:true,
}
})
David Marr
04/09/2022, 4:14 PM{ data, includes: { media, users } }
-- the includes object includes data that may be referenced in data.
The challenge is that I'm trying to create entities in the db that reference each other but don't exist yet. For example, I want to create tweets that has a media relation, but the media needs to be created first. Media also has the related tweets as part of its model. Since the tweets aren't created yet, until the media is created this presents a problem. What would be the best approach here?Ville
04/09/2022, 6:10 PMTejas H
04/10/2022, 8:28 AMnpx prisma migrate reset --force
/ npx prisma db seed
, it gives me the following error. No idea what to do. Been searching for a solution. Please help.Ali Salem
04/10/2022, 12:54 PMAli Salem
04/10/2022, 12:54 PMOrcioly Andrade Alves
04/10/2022, 10:52 PMimport { User, Post, Prisma } from '@prisma/client';
import { AbilityClass, AbilityBuilder, subject } from '@casl/ability';
import { PrismaAbility, Subjects } from '@casl/prisma';
type AppAbility = PrismaAbility<[string, Subjects<{
User: User,
Post: Post
}>]>;
const AppAbility = PrismaAbility as AbilityClass<AppAbility>;
const { can, cannot, build } = new AbilityBuilder(AppAbility);
can('read', 'Post', { authorId: 1 });
cannot('read', 'Post', { title: { startsWith: '[WIP]:' } });
const ability = build();
ability.can('read', 'Post');
ability.can('read', subject('Post', { title: '...', authorId: 1 })));
Noit
04/10/2022, 11:49 PMamock666
04/11/2022, 4:23 AMAlfred Noland
04/11/2022, 7:41 AMuser
04/11/2022, 10:20 AM