Aman
08/15/2022, 7:37 PMmodel User {
id Int @id @default(autoincrement())
auth0Id String? @unique
authEmail String? @unique
email String @unique
name String?
companyData CompanyData?
}
model CompanyData {
id Int @id @default(autoincrement())
owner User @relation(fields: [ownerId], references: [id])
ownerId Int @unique
capTable CapTable?
}
model CapTable {
id Int @id @default(autoincrement())
stakeholder Stakeholder[]
stockClass StockClass[]
vestingTerm VestingTerm[]
transactions Transactions[]
companyData CompanyData @relation(fields: [companyId], references: [id])
companyId Int @unique
}
model ConvertibleTransactions {
id Int @default(autoincrement()) @unique
json Json?
transactions Transactions?
}
model SecurityTransactions {
id Int @default(autoincrement()) @unique
json Json?
transactions Transactions?
}
model WarrantsTransactions {
id Int @default(autoincrement()) @unique
json Json?
transactions Transactions?
}
model Transactions {
id Int @default(autoincrement()) @unique
convertibleTransactions ConvertibleTransactions? @relation(fields: [convertibleTransactionId], references: [id])
convertibleTransactionId Int @unique
securityTransactions SecurityTransactions? @relation(fields: [securityTransactionId], references: [id])
securityTransactionId Int @unique
warrantsTransactions WarrantsTransactions? @relation(fields: [warrantsTransactionId], references: [id])
warrantsTransactionId Int @unique
capTable CapTable? @relation(fields: [capTableId], references: [id], onDelete: Cascade)
capTableId Int?
}
and this is my prisma query
await prisma.user.update({
where: {
id: userData.id,
},
data: {
companyData: {
update: {
capTable: {
update: {
transactions: {
update: {
convertibleTransactions: {
upsert: {
create: {
json: data,
},
update: {
json: data,
},
where: {
id: data?.id || -1,
},
},
},
// where: {
// convertibleTransactionId: data.convertibleId || -1,
// },
},
},
},
},
},
},
}, ,
});
can someone help me with what I am doing wrong hereNurul
08/23/2022, 10:01 AMimport { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient({
log: ['query'],
});
async function main() {
await prisma.user.create({
data: {
id: 1,
email: '<mailto:test@test.com|test@test.com>',
companyData: {
create: {
capTable: {
create: {
transactions: {
create: {
convertibleTransactions: {
create: {
id: 1,
json: {},
},
},
securityTransactions: {
create: {
id: 1,
json: {},
},
},
warrantsTransactions: {
create: {
id: 1,
json: {},
},
},
},
},
},
},
},
},
},
});
await prisma.user.update({
where: {
id: 1,
},
data: {
companyData: {
update: {
capTable: {
update: {
transactions: {
update: {
data: {
convertibleTransactions: {
upsert: {
create: {
json: {},
},
update: {
json: {},
},
},
},
},
where: {
convertibleTransactionId: 1,
},
},
},
},
},
},
},
},
});
}
main()
.catch((e) => {
throw e;
})
.finally(async () => {
await prisma.$disconnect();
});
Response:
➜ npm run dev
> hello-prisma@1.0.0 dev
> ts-node index.ts
prisma:query BEGIN
prisma:query INSERT INTO `railway`.`User` (`id`,`email`) VALUES (?,?)
prisma:query INSERT INTO `railway`.`CompanyData` (`id`,`ownerId`) VALUES (?,?)
prisma:query INSERT INTO `railway`.`CapTable` (`id`,`companyId`) VALUES (?,?)
prisma:query INSERT INTO `railway`.`WarrantsTransactions` (`id`,`json`) VALUES (?,?)
prisma:query INSERT INTO `railway`.`SecurityTransactions` (`id`,`json`) VALUES (?,?)
prisma:query INSERT INTO `railway`.`ConvertibleTransactions` (`id`,`json`) VALUES (?,?)
prisma:query INSERT INTO `railway`.`Transactions` (`id`,`convertibleTransactionId`,`securityTransactionId`,`warrantsTransactionId`,`capTableId`) VALUES (?,?,?,?,?)
prisma:query SELECT `railway`.`User`.`id`, `railway`.`User`.`auth0Id`, `railway`.`User`.`authEmail`, `railway`.`User`.`email`, `railway`.`User`.`name` FROM `railway`.`User` WHERE `railway`.`User`.`id` = ? LIMIT ? OFFSET ?
prisma:query COMMIT
prisma:query BEGIN
prisma:query SELECT `railway`.`User`.`id` FROM `railway`.`User` WHERE `railway`.`User`.`id` = ?
prisma:query SELECT `railway`.`CompanyData`.`id`, `railway`.`CompanyData`.`ownerId` FROM `railway`.`CompanyData` WHERE (1=1 AND `railway`.`CompanyData`.`ownerId` IN (?))
prisma:query SELECT `railway`.`CapTable`.`id`, `railway`.`CapTable`.`companyId` FROM `railway`.`CapTable` WHERE (1=1 AND `railway`.`CapTable`.`companyId` IN (?))
prisma:query SELECT `railway`.`Transactions`.`id`, `railway`.`Transactions`.`capTableId` FROM `railway`.`Transactions` WHERE (`railway`.`Transactions`.`convertibleTransactionId` = ? AND `railway`.`Transactions`.`capTableId` IN (?))
prisma:query SELECT `railway`.`Transactions`.`id`, `railway`.`Transactions`.`convertibleTransactionId` FROM `railway`.`Transactions` WHERE `railway`.`Transactions`.`id` = ?
prisma:query SELECT `railway`.`ConvertibleTransactions`.`id` FROM `railway`.`ConvertibleTransactions` WHERE (1=1 AND `railway`.`ConvertibleTransactions`.`id` IN (?))
prisma:query SELECT `railway`.`ConvertibleTransactions`.`id` FROM `railway`.`ConvertibleTransactions` WHERE `railway`.`ConvertibleTransactions`.`id` = ?
prisma:query UPDATE `railway`.`ConvertibleTransactions` SET `json` = ? WHERE `railway`.`ConvertibleTransactions`.`id` IN (?)
prisma:query SELECT `railway`.`User`.`id`, `railway`.`User`.`auth0Id`, `railway`.`User`.`authEmail`, `railway`.`User`.`email`, `railway`.`User`.`name` FROM `railway`.`User` WHERE `railway`.`User`.`id` = ? LIMIT ? OFFSET ?
prisma:query COMMIT