From 8b0cafc7d12453f61bcdae0ea6717ba342c78fe2 Mon Sep 17 00:00:00 2001 From: ewrayjohnson Date: Sat, 10 Aug 2019 22:50:53 -0400 Subject: [PATCH 1/5] Fix - fail to honor non-unique property constraint Connector does not honor non-unique constraint definition for a property declaration in model json file on automigrate. Example model json file snipet: "properties": [ "email": { "type": "String", "index": { "unique": false } } ] error generated: "could not create unique index "[modelname] _email_idx" --- lib/migration.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/migration.js b/lib/migration.js index 1659f9fa..01010b9a 100644 --- a/lib/migration.js +++ b/lib/migration.js @@ -823,7 +823,7 @@ function mixinMigration(PostgreSQL) { kind = i.kind; } - if (!kind && !type && typeof i === 'object' || i.unique && i.unique === true) { + if (!kind && !type && typeof i === 'object' && i.unique && i.unique === true) { kind = ' UNIQUE '; } From d1ec029c23e5959c1df23f5e972d042b69d2beb6 Mon Sep 17 00:00:00 2001 From: ewrayjohnson Date: Wed, 13 May 2020 15:52:29 -0400 Subject: [PATCH 2/5] Updated to preserve explicit indexes[].kind --- lib/migration.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/migration.js b/lib/migration.js index 01010b9a..9227d7e9 100644 --- a/lib/migration.js +++ b/lib/migration.js @@ -852,7 +852,7 @@ function mixinMigration(PostgreSQL) { kind = i.kind; } - if (i.options && i.options.unique && i.options.unique === true) { + if (!kind && typeof i === 'object' && i.unique && i.unique === true) { kind = ' UNIQUE '; } From 5c54bcf6fc03568fcc29b26237936187d6f4197b Mon Sep 17 00:00:00 2001 From: ewrayjohnson Date: Wed, 13 May 2020 15:59:57 -0400 Subject: [PATCH 3/5] Removed check for type --- lib/migration.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/migration.js b/lib/migration.js index 9227d7e9..70f9963f 100644 --- a/lib/migration.js +++ b/lib/migration.js @@ -823,7 +823,7 @@ function mixinMigration(PostgreSQL) { kind = i.kind; } - if (!kind && !type && typeof i === 'object' && i.unique && i.unique === true) { + if (!kind && typeof i === 'object' && i.unique && i.unique === true) { kind = ' UNIQUE '; } From 8acaa10f6550d71703e3706555b7cae58b51a778 Mon Sep 17 00:00:00 2001 From: ewrayjohnson Date: Thu, 14 May 2020 19:15:52 -0400 Subject: [PATCH 4/5] Improved fixed for ignoring creation of non-unique indexes --- lib/migration.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/migration.js b/lib/migration.js index 70f9963f..5ab00155 100644 --- a/lib/migration.js +++ b/lib/migration.js @@ -823,8 +823,8 @@ function mixinMigration(PostgreSQL) { kind = i.kind; } - if (!kind && typeof i === 'object' && i.unique && i.unique === true) { - kind = ' UNIQUE '; + if (!kind && ((i && typeof i === 'object')? i.unique !== false : true)) { + kind = 'UNIQUE'; } sql.push('CREATE ' + kind + ' INDEX ' + self.escapeName(iName) + ' ON ' + self.tableEscaped(model) + @@ -852,8 +852,8 @@ function mixinMigration(PostgreSQL) { kind = i.kind; } - if (!kind && typeof i === 'object' && i.unique && i.unique === true) { - kind = ' UNIQUE '; + if (!kind && ((i && typeof i === 'object')? i.unique !== false : true)) { + kind = 'UNIQUE'; } sql.push('CREATE ' + kind + ' INDEX ' + iName + ' ON ' + self.tableEscaped(model) + From 4a676ba459fbded31b0686437d953b8bca9ea5fc Mon Sep 17 00:00:00 2001 From: ewrayjohnson Date: Fri, 22 May 2020 03:23:46 -0400 Subject: [PATCH 5/5] Replaced mistakenly removed (!type && ) --- lib/migration.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/migration.js b/lib/migration.js index 5ab00155..49813f67 100644 --- a/lib/migration.js +++ b/lib/migration.js @@ -823,7 +823,7 @@ function mixinMigration(PostgreSQL) { kind = i.kind; } - if (!kind && ((i && typeof i === 'object')? i.unique !== false : true)) { + if (!kind && !type && ((i && typeof i === 'object')? i.unique !== false : true)) { kind = 'UNIQUE'; } @@ -852,7 +852,7 @@ function mixinMigration(PostgreSQL) { kind = i.kind; } - if (!kind && ((i && typeof i === 'object')? i.unique !== false : true)) { + if (!kind && !type && ((i && typeof i === 'object')? i.unique !== false : true)) { kind = 'UNIQUE'; }