Found another issue related to migrations & plugins.
Generated migration code:
console.log('Delete plugin "Read-only Fields"');
await client.plugins.destroy('bNeGi2IHRaCsAQQyZPB76g');
console.log('Install plugin "Read-only Fields"');
await client.plugins.create({
id: 'mbq9DrdzRIGqrmwwWJztEg',
package_name: 'datocms-plugin-readonly-fields',
});
await client.plugins.update('mbq9DrdzRIGqrmwwWJztEg', { parameters: { developmentMode: false } });
2 issues in fact:
- Getting an unexpected validation error for the
developmentMode
flag
[
{
"id": "306dbb",
"type": "api_error",
"attributes": {
"code": "INVALID_FIELD",
"details": {
"field": "parameters.developmentMode",
"code": "VALIDATION_REQUIRED"
}
}
}
]
The generated migration code should set the flags correctly.
- The first
destroy
of the existing plugin fails, because it’s used by some fields.
e.g. if I’d try to click-delete it, I get an error
Executing the migration, the script simply continues after the failed delete.
It doesn’t check if delete was successful and we end up with the same plugin twice.
Should I move this to a separate thread?
The cause is actually related to Bug: Autogenerating and running migrations tries to generate schema_migration model twice - #9 by ldc
but the unintended behavior seems to show 2 unrelated bugs.