From 56fb927c74e6d7fd1a2c3f21a1bed83f2f38ec2c Mon Sep 17 00:00:00 2001 From: jusax23 Date: Fri, 24 Mar 2023 18:51:09 +0100 Subject: [PATCH] fix bugged primary key change with auto_increment --- src/defaultHandler.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/defaultHandler.ts b/src/defaultHandler.ts index 77c88f1..fce041a 100644 --- a/src/defaultHandler.ts +++ b/src/defaultHandler.ts @@ -126,9 +126,9 @@ export class Handler { const k = key[i]; if ( ((k.REFERENCED_TABLE_NAME ?? k.referenced_table_name) == table - && (k.REFERENCED_COLUMN_NAME ?? k.referenced_column_name).toLowerCase() == attr.toLowerCase()) + && (k.REFERENCED_COLUMN_NAME ?? k.referenced_column_name).toLowerCase() == attr.toLowerCase()) || (start && (k.TABLE_NAME ?? k.table_name) == table - && (k.COLUMN_NAME ?? k.column_name).toLowerCase() == attr.toLowerCase() && (k.REFERENCED_COLUMN_NAME ?? k.referenced_column_name) != null) + && (k.COLUMN_NAME ?? k.column_name).toLowerCase() == attr.toLowerCase() && (k.REFERENCED_COLUMN_NAME ?? k.referenced_column_name) != null) ) { del.appendEnding(handler.querys.removeForeignKey(handler, (k.TABLE_NAME ?? k.table_name), (k.CONSTRAINT_NAME ?? k.constraint_name))); key.splice(i--, 1); @@ -223,6 +223,15 @@ export class Handler { } } } + if (changePrimary) for (let j = 0; j < keys.length; j++) { + const a = table.dbLangTableAttributes[keys[j]]; + if (a.ops.autoIncrement) { + a.ops.autoIncrement = false; + create.appendEnding(handler.querys.changeColumn(handler, a)); + a.ops.autoIncrement = true; + connst.appendEnding(handler.querys.changeColumn(handler, a)); + } + } } if (changePrimary) { create.appendEnding(handler.querys.removePrimaryKey(handler, table.dbLangTableName));