diff --git a/packages/cli/src/databases/migrations/sqlite/1659888469333-AddJsonKeyPinData.ts b/packages/cli/src/databases/migrations/sqlite/1659888469333-AddJsonKeyPinData.ts index 67b8cae704..725be9a6f4 100644 --- a/packages/cli/src/databases/migrations/sqlite/1659888469333-AddJsonKeyPinData.ts +++ b/packages/cli/src/databases/migrations/sqlite/1659888469333-AddJsonKeyPinData.ts @@ -64,8 +64,17 @@ export const addJsonKeyToPinDataColumn = function makeUpdateParams(fetchedWorkflows: PinData.FetchedWorkflow[]) { return fetchedWorkflows.reduce( (updateParams, { id, pinData: rawPinData }) => { - const pinDataPerWorkflow: PinData.Old | PinData.New = - typeof rawPinData === 'string' ? JSON.parse(rawPinData) : rawPinData; + let pinDataPerWorkflow: PinData.Old | PinData.New; + + if (typeof rawPinData === 'string') { + try { + pinDataPerWorkflow = JSON.parse(rawPinData); + } catch (_) { + pinDataPerWorkflow = {}; + } + } else { + pinDataPerWorkflow = rawPinData; + } const newPinDataPerWorkflow = Object.keys(pinDataPerWorkflow).reduce( (newPinDataPerWorkflow, nodeName) => { diff --git a/packages/cli/src/databases/utils/migrations.types.ts b/packages/cli/src/databases/utils/migrations.types.ts index aaa9f66472..bb3fbca85b 100644 --- a/packages/cli/src/databases/utils/migrations.types.ts +++ b/packages/cli/src/databases/utils/migrations.types.ts @@ -5,7 +5,7 @@ export namespace PinData { export type New = { [nodeName: string]: INodeExecutionData[] }; - export type FetchedWorkflow = { id: number; pinData: string | object }; + export type FetchedWorkflow = { id: number; pinData: string | Old }; } export function isObjectLiteral(maybeObject: unknown): maybeObject is { [key: string]: string } {