Skip to content

Commit

Permalink
fix(core): Metadata inserts using existing IDs and failing with postg…
Browse files Browse the repository at this point in the history
…res (n8n-io#10108)
  • Loading branch information
despairblue authored Jul 23, 2024
1 parent 6209ac6 commit 4547a49
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -108,5 +108,15 @@ export class AddConstraintToExecutionMetadata1720101653148 implements Reversible
await context.runQuery(
`ALTER TABLE ${executionMetadataTableTemp} RENAME TO ${executionMetadataTable};`,
);

if (context.dbType === 'postgresdb') {
// Update sequence so that inserts continue with the next highest id.
const tableName = escape.tableName('execution_metadata');
const sequenceName = escape.tableName('execution_metadata_temp_id_seq1');

await context.runQuery(
`SELECT setval('${sequenceName}', (SELECT MAX(id) FROM ${tableName}));`,
);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import type { IrreversibleMigration, MigrationContext } from '@db/types';

export class FixExecutionMetadataSequence1721377157740 implements IrreversibleMigration {
async up({ queryRunner, escape }: MigrationContext) {
const tableName = escape.tableName('execution_metadata');
const sequenceName = escape.tableName('execution_metadata_temp_id_seq');

await queryRunner.query(
`SELECT setval('${sequenceName}', (SELECT MAX(id) FROM ${tableName}));`,
);
}
}
2 changes: 2 additions & 0 deletions packages/cli/src/databases/migrations/postgresdb/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ import { RemoveNodesAccess1712044305787 } from '../common/1712044305787-RemoveNo
import { MakeExecutionStatusNonNullable1714133768521 } from '../common/1714133768521-MakeExecutionStatusNonNullable';
import { AddActivatedAtUserSetting1717498465931 } from './1717498465931-AddActivatedAtUserSetting';
import { AddConstraintToExecutionMetadata1720101653148 } from '../common/1720101653148-AddConstraintToExecutionMetadata';
import { FixExecutionMetadataSequence1721377157740 } from './1721377157740-FixExecutionMetadataSequence';

export const postgresMigrations: Migration[] = [
InitialMigration1587669153312,
Expand Down Expand Up @@ -119,4 +120,5 @@ export const postgresMigrations: Migration[] = [
MakeExecutionStatusNonNullable1714133768521,
AddActivatedAtUserSetting1717498465931,
AddConstraintToExecutionMetadata1720101653148,
FixExecutionMetadataSequence1721377157740,
];

0 comments on commit 4547a49

Please sign in to comment.