Skip to content

Commit

Permalink
feat: ensure ID is primary key after autoupdate
Browse files Browse the repository at this point in the history
  • Loading branch information
Stefan Blaginov authored and Stefan Blaginov committed Jan 24, 2022
1 parent 3da25ae commit 3298cd4
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion lib/migration.js
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down

0 comments on commit 3298cd4

Please sign in to comment.