Browse Source

fix: this record exist issue for pg duplicate

pull/6873/head
mertmit 1 year ago
parent
commit
1af22332d6
  1. 11
      packages/nocodb/src/modules/jobs/jobs/export-import/export.service.ts
  2. 13
      packages/nocodb/src/modules/jobs/jobs/export-import/import.service.ts

11
packages/nocodb/src/modules/jobs/jobs/export-import/export.service.ts

@ -78,15 +78,20 @@ export class ExportService {
if (source.type === 'pg') {
if (column.ai) {
try {
const baseModel = await Model.getBaseModelSQL({
id: model.id,
viewId: null,
dbDriver: await NcConnectionMgrv2.get(source),
});
const sqlClient = await NcConnectionMgrv2.getSqlClient(source);
const seq = await sqlClient.knex.raw(
const seq = await sqlClient.raw(
`SELECT pg_get_serial_sequence('??', ?) as seq;`,
[model.table_name, column.column_name],
[baseModel.getTnPath(model.table_name), column.column_name],
);
if (seq.rows.length > 0) {
const seqName = seq.rows[0].seq;
const res = await sqlClient.knex.raw(
const res = await sqlClient.raw(
`SELECT last_value as last FROM ${seqName};`,
);

13
packages/nocodb/src/modules/jobs/jobs/export-import/import.service.ts

@ -158,10 +158,19 @@ export class ImportService {
if (source.type === 'pg') {
if (modelData.pgSerialLastVal) {
if (col.ai) {
const baseModel = await Model.getBaseModelSQL({
id: table.id,
viewId: null,
dbDriver: await NcConnectionMgrv2.get(source),
});
const sqlClient = await NcConnectionMgrv2.getSqlClient(source);
await sqlClient.knex.raw(
await sqlClient.raw(
`SELECT setval(pg_get_serial_sequence('??', ?), ?);`,
[table.table_name, col.column_name, modelData.pgSerialLastVal],
[
baseModel.getTnPath(table.table_name),
col.column_name,
modelData.pgSerialLastVal,
],
);
}
}

Loading…
Cancel
Save