fix
This commit is contained in:
parent
9d9792c56c
commit
fad1e6ffc1
|
|
@ -38,6 +38,7 @@ export const execQuery = async (args: DBArg, prisma: any) => {
|
||||||
|
|
||||||
if (schema_table) {
|
if (schema_table) {
|
||||||
let pks: Property[] = [];
|
let pks: Property[] = [];
|
||||||
|
let pk_composite_rel = "";
|
||||||
for (const col of schema_table.properties) {
|
for (const col of schema_table.properties) {
|
||||||
if (col.type === "field" && !col.array) {
|
if (col.type === "field" && !col.array) {
|
||||||
if (col.attributes && col.attributes?.length > 0) {
|
if (col.attributes && col.attributes?.length > 0) {
|
||||||
|
|
@ -48,9 +49,26 @@ export const execQuery = async (args: DBArg, prisma: any) => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (
|
||||||
|
col.type === "attribute" &&
|
||||||
|
col.name === "id" &&
|
||||||
|
col.kind === "object"
|
||||||
|
) {
|
||||||
|
const value = col.args[0].value as any;
|
||||||
|
if (Array.isArray(value.args) && value.args.length > 0) {
|
||||||
|
pks = value.args.map((e: string) => ({
|
||||||
|
name: e,
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const rels = getRels({ schema_table, schema, table, tables });
|
const rels = getRels({ schema_table, schema, table, tables });
|
||||||
if (pks.length > 0) {
|
if (pks.length > 0) {
|
||||||
|
if (pks.length > 1) {
|
||||||
|
pk_composite_rel = pks.map((e) => e.name).join("_");
|
||||||
|
}
|
||||||
|
|
||||||
if (Object.keys(where.length > 0)) {
|
if (Object.keys(where.length > 0)) {
|
||||||
const rel_many = {} as Record<
|
const rel_many = {} as Record<
|
||||||
string,
|
string,
|
||||||
|
|
@ -276,6 +294,15 @@ export const execQuery = async (args: DBArg, prisma: any) => {
|
||||||
delete row._marker;
|
delete row._marker;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pk_composite_rel) {
|
||||||
|
const comp_rel_val = {} as any;
|
||||||
|
for (const pk of pks) {
|
||||||
|
comp_rel_val[pk.name] = where[pk.name];
|
||||||
|
delete where[pk.name];
|
||||||
|
}
|
||||||
|
where[pk_composite_rel] = comp_rel_val;
|
||||||
|
}
|
||||||
|
|
||||||
transactions.push(
|
transactions.push(
|
||||||
prisma[table].update({ data: row, where, select })
|
prisma[table].update({ data: row, where, select })
|
||||||
);
|
);
|
||||||
|
|
@ -288,6 +315,16 @@ export const execQuery = async (args: DBArg, prisma: any) => {
|
||||||
for (const pk of pks) {
|
for (const pk of pks) {
|
||||||
where[pk.name] = item[pk.name];
|
where[pk.name] = item[pk.name];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pk_composite_rel) {
|
||||||
|
const comp_rel_val = {} as any;
|
||||||
|
for (const pk of pks) {
|
||||||
|
comp_rel_val[pk.name] = where[pk.name];
|
||||||
|
delete where[pk.name];
|
||||||
|
}
|
||||||
|
where[pk_composite_rel] = comp_rel_val;
|
||||||
|
}
|
||||||
|
|
||||||
transactions.push(prisma[table].delete({ where }));
|
transactions.push(prisma[table].delete({ where }));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue