feat: ensure ID is primary key after autoupdate
Signed-off-by: Stefan Blaginov <Stefan.Blaginov@docusign.com>
This commit is contained in:
parent
3da25aed4e
commit
9ff5bd1061
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue