diff --git a/migrations/20231219181201_change_description_text.sql b/migrations/20231219181201_change_description_text.sql new file mode 100644 index 00000000..9092b1e2 --- /dev/null +++ b/migrations/20231219181201_change_description_text.sql @@ -0,0 +1,4 @@ +ALTER TABLE `type_def_types` MODIFY `description` TEXT; +ALTER TABLE `type_def_fields` MODIFY `description` TEXT; +ALTER TABLE `type_def_operations` MODIFY `description` TEXT; +ALTER TABLE `type_def_operation_parameters` MODIFY `description` TEXT; diff --git a/src/controller/breakdown.ts b/src/controller/breakdown.ts index e18f9ddf..2091c70a 100644 --- a/src/controller/breakdown.ts +++ b/src/controller/breakdown.ts @@ -41,6 +41,7 @@ export class BreakDownSchemaCaseUse implements BreakDownService { return; } catch (err) { logger.error('Error breaking down the schema', err.message ?? err); + throw err; } } } diff --git a/src/database/schemaBreakdown/breakdown.ts b/src/database/schemaBreakdown/breakdown.ts index 6696f1d1..2d68b683 100644 --- a/src/database/schemaBreakdown/breakdown.ts +++ b/src/database/schemaBreakdown/breakdown.ts @@ -7,6 +7,7 @@ export class BreakDownRepository { if (data.length === 0) { return; } + return trx.raw(`INSERT INTO ${this.tableName} (${this.columns.join( ',' )}) @@ -50,9 +51,18 @@ export class BreakDownRepository { const fields = columns.map((column) => { const value = i[column]; if (value === undefined) return 'null'; - else if (typeof value === 'string') - return `'${value.replace(/'/g, "\\'")}'`; - else return value; + else if (typeof value === 'string') { + let sanitized = value; + if (value.endsWith('\\')) { + sanitized = `${value} `; + } + + const trailingSlashesSanitized = sanitized.replace( + /'/g, + "\\'" + ); + return `'${trailingSlashesSanitized}'`; + } else return value; }); return `(${fields.join(',')})`; });