mirror of
https://github.com/n8n-io/n8n.git
synced 2026-09-24 23:22:38 +08:00
feat(core): Add workflowVersionId column to ExecutionData table (no-changelog) (#21926)
This commit is contained in:
@@ -27,6 +27,9 @@ export class ExecutionData {
|
||||
@PrimaryColumn({ transformer: idStringifier })
|
||||
executionId: string;
|
||||
|
||||
@Column({ type: 'varchar', length: 36, nullable: true })
|
||||
workflowVersionId: string | null;
|
||||
|
||||
@OneToOne('ExecutionEntity', 'executionData', {
|
||||
onDelete: 'CASCADE',
|
||||
})
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
import type { MigrationContext, ReversibleMigration } from '../migration-types';
|
||||
|
||||
export class AddWorkflowVersionIdToExecutionData1765892199653 implements ReversibleMigration {
|
||||
async up({ schemaBuilder: { addColumns, column } }: MigrationContext) {
|
||||
await addColumns('execution_data', [column('workflowVersionId').varchar(36)]);
|
||||
}
|
||||
|
||||
async down({ schemaBuilder: { dropColumns } }: MigrationContext) {
|
||||
await dropColumns('execution_data', ['workflowVersionId']);
|
||||
}
|
||||
}
|
||||
@@ -127,6 +127,7 @@ import { BackfillMissingWorkflowHistoryRecords1765448186933 } from '../common/17
|
||||
import { AddResolvableFieldsToCredentials1765459448000 } from '../common/1765459448000-AddResolvableFieldsToCredentials';
|
||||
import { AddIconToAgentTable1765788427674 } from '../common/1765788427674-AddIconToAgentTable';
|
||||
import { AddAgentIdForeignKeys1765886667897 } from '../common/1765886667897-AddAgentIdForeignKeys';
|
||||
import { AddWorkflowVersionIdToExecutionData1765892199653 } from '../common/1765892199653-AddVersionIdToExecutionData';
|
||||
import type { Migration } from '../migration-types';
|
||||
|
||||
export const mysqlMigrations: Migration[] = [
|
||||
@@ -259,4 +260,5 @@ export const mysqlMigrations: Migration[] = [
|
||||
AddResolvableFieldsToCredentials1765459448000,
|
||||
AddIconToAgentTable1765788427674,
|
||||
AddAgentIdForeignKeys1765886667897,
|
||||
AddWorkflowVersionIdToExecutionData1765892199653,
|
||||
];
|
||||
|
||||
@@ -128,6 +128,7 @@ import { BackfillMissingWorkflowHistoryRecords1765448186933 } from '../common/17
|
||||
import { AddResolvableFieldsToCredentials1765459448000 } from '../common/1765459448000-AddResolvableFieldsToCredentials';
|
||||
import { AddIconToAgentTable1765788427674 } from '../common/1765788427674-AddIconToAgentTable';
|
||||
import { AddAgentIdForeignKeys1765886667897 } from '../common/1765886667897-AddAgentIdForeignKeys';
|
||||
import { AddWorkflowVersionIdToExecutionData1765892199653 } from '../common/1765892199653-AddVersionIdToExecutionData';
|
||||
import type { Migration } from '../migration-types';
|
||||
|
||||
export const postgresMigrations: Migration[] = [
|
||||
@@ -261,4 +262,5 @@ export const postgresMigrations: Migration[] = [
|
||||
AddIconToAgentTable1765788427674,
|
||||
ConvertAgentIdToUuid1765804780000,
|
||||
AddAgentIdForeignKeys1765886667897,
|
||||
AddWorkflowVersionIdToExecutionData1765892199653,
|
||||
];
|
||||
|
||||
@@ -123,6 +123,7 @@ import { CreateDynamicCredentialResolverTable1764682447000 } from '../common/176
|
||||
import { AddDynamicCredentialEntryTable1764689388394 } from '../common/1764689388394-AddDynamicCredentialEntryTable';
|
||||
import { BackfillMissingWorkflowHistoryRecords1765448186933 } from '../common/1765448186933-BackfillMissingWorkflowHistoryRecords';
|
||||
import { AddIconToAgentTable1765788427674 } from '../common/1765788427674-AddIconToAgentTable';
|
||||
import { AddWorkflowVersionIdToExecutionData1765892199653 } from '../common/1765892199653-AddVersionIdToExecutionData';
|
||||
import type { Migration } from '../migration-types';
|
||||
|
||||
const sqliteMigrations: Migration[] = [
|
||||
@@ -251,6 +252,7 @@ const sqliteMigrations: Migration[] = [
|
||||
AddResolvableFieldsToCredentials1764689448000,
|
||||
AddIconToAgentTable1765788427674,
|
||||
AddAgentIdForeignKeys1765886667897,
|
||||
AddWorkflowVersionIdToExecutionData1765892199653,
|
||||
];
|
||||
|
||||
export { sqliteMigrations };
|
||||
|
||||
@@ -367,7 +367,12 @@ export class ExecutionRepository extends Repository<ExecutionEntity> {
|
||||
// In the non-pooling sqlite driver we can't use transactions, because that creates nested transactions under highly concurrent loads, leading to errors in the database
|
||||
const { identifiers: inserted } = await this.insert({ ...rest, createdAt: new Date() });
|
||||
const { id: executionId } = inserted[0] as { id: string };
|
||||
await this.executionDataRepository.insert({ executionId, workflowData, data });
|
||||
await this.executionDataRepository.insert({
|
||||
executionId,
|
||||
workflowData,
|
||||
data,
|
||||
workflowVersionId: currentWorkflow.versionId,
|
||||
});
|
||||
return String(executionId);
|
||||
} else {
|
||||
// All other database drivers should create executions and execution-data atomically
|
||||
@@ -378,7 +383,7 @@ export class ExecutionRepository extends Repository<ExecutionEntity> {
|
||||
});
|
||||
const { id: executionId } = inserted[0] as { id: string };
|
||||
await this.executionDataRepository.createExecutionDataForExecution(
|
||||
{ executionId, workflowData, data },
|
||||
{ executionId, workflowData, data, workflowVersionId: currentWorkflow.versionId },
|
||||
transactionManager,
|
||||
);
|
||||
return String(executionId);
|
||||
|
||||
Reference in New Issue
Block a user