$this->
lock(function D
): void
{ /** @var list<array{name: string, fields: string}> $tables */
$tables =
$this->connection->
fetchAllAssociative('SELECT name, fields FROM custom_entity'
);
$schema =
$this->connection->
createSchemaManager()->
introspectSchema();
$this->
cleanup($schema);
$this->schemaUpdater->
applyCustomEntities($schema,
$tables);
$this->
applyNewSchema($schema);
});
} private function lock(\Closure
$closure): void
{ $lock =
$this->lockFactory->
createLock('custom-entity::schema-update', 30
);
if ($lock->
acquire(true
)) { $closure();
$lock->
release();
}