When using uuid as recordId, it is impossible to install extensions due to Espo doesn't follow recordId rules defined in metadata when installing extension.
My suggestion is to refactor Espo\Core\Upgrades\Actions\Base.php
My suggestion is to refactor Espo\Core\Upgrades\Actions\Base.php
PHP Code:
use Espo\Core\Utils\Id\DefaultRecordIdGenerator;
...
protected function createRecordIdGenerator(): DefaultRecordIdGenerator
{
$injectableFactory = $this->getContainer()->getByClass(InjectableFactory::class);
return $injectableFactory->create(DefaultRecordIdGenerator::class);
}
...
protected function createProcessId(): string
{
if (isset($this->processId)) {
throw new Error('Another installation process is currently running.');
}
$this->processId = $this->createRecordIdGenerator()->generate();
return $this->processId;
}
Comment