fix(core): Fix import command for workflows with old format(pre UM) (#5403)

* Replace invalid credentials when importing workflows

* Remove useless console.logs
This commit is contained in:
agobrech
2023-02-09 15:24:09 +01:00
committed by GitHub
parent 1ea1935b9a
commit fdf47a96de

View File

@@ -27,6 +27,7 @@ import type { User } from '@db/entities/User';
import { setTagsForImport } from '@/TagHelpers';
import type { ICredentialsDb, IWorkflowToImport } from '@/Interfaces';
import { disableAutoGeneratedIds } from '@db/utils/commandHelpers';
import { replaceInvalidCredentials } from '@/WorkflowHelpers';
const FIX_INSTRUCTION =
'Please fix the database by running ./packages/cli/bin/n8n user-management:reset';
@@ -125,7 +126,7 @@ export class ImportWorkflowsCommand extends Command {
});
totalImported = files.length;
console.info(`Importing ${totalImported} workflows...`);
await Db.getConnection().transaction(async (transactionManager) => {
this.transactionManager = transactionManager;
@@ -165,17 +166,26 @@ export class ImportWorkflowsCommand extends Command {
this.transactionManager = transactionManager;
for (const workflow of workflows) {
let oldCredentialFormat = false;
if (credentials.length > 0) {
workflow.nodes.forEach((node: INode) => {
this.transformCredentials(node, credentials);
if (!node.id) {
// eslint-disable-next-line no-param-reassign
node.id = uuid();
}
if (!node.credentials?.id) {
oldCredentialFormat = true;
}
});
}
if (oldCredentialFormat) {
try {
await replaceInvalidCredentials(workflow as unknown as WorkflowEntity);
} catch (error) {
console.log(error);
}
}
if (Object.prototype.hasOwnProperty.call(workflow, 'tags')) {
await setTagsForImport(transactionManager, workflow, tags);
}