diff --git a/lib/migration.js b/lib/migration.js index 7c4bf119..ae6468bc 100644 --- a/lib/migration.js +++ b/lib/migration.js @@ -204,7 +204,20 @@ function mixinMigration(MySQL, mysql) { const sql = []; propNames.forEach(function(propName) { - if (m.properties[propName] && self.id(model, propName)) return; + // If the field is set as an ID inside the model + if (m.properties[propName] && self.id(model, propName)) { + const existingIdField = actualFields?.find( + ({ Field }) => Field === expectedColNameForModel(propName, m) + ); + + // And the same field is already present inside the DB, but not set as a + // primary key + if (existingIdField && existingIdField.Key !== 'PRI') { + // Set the field to а primary key + sql.push(`ADD PRIMARY KEY (\`${existingIdField.Field}\`)`); + } else { return; } + }; + let found; const colName = expectedColNameForModel(propName, m); if (actualFields) {