Configurando o cache de esquema
December 5, 2025 · View on GitHub
As informações sobre o esquema do banco de dados necessário para o ORM vêm de Schema que o recupera do servidor de banco de dados.
Para acesso mais rápido, Schema armazena as informações de esquema do banco de dados em SchemaCache.
Quando o Schema precisa recuperar informações sobre o esquema do banco de dados, primeiro ele verifica o cache.
Você pode configurar SchemaCache para usar a Implementação de cache PSR-16 de duas maneiras:
- Usar a ligação automática do contêiner DI.
- Configurá-lo manualmente.
Os exemplos abaixo usam yiisoft/cache. Certifique-se de tê-lo instalado via Composer
usando composer require yiisoft/cache.
Cache PSR-16 com conexão automática
Esta configuração é adequada se você quiser usar o mesmo driver de cache para todo o aplicativo.
Crie um arquivo config/common/di/cache.php para cache:
use Psr\SimpleCache\CacheInterface;
use Yiisoft\Cache\File\FileCache;
/** @var array $params */
return [
CacheInterface::class => [
'class' => FileCache::class,
'__construct()' => [
'cachePath' => __DIR__ . '/../../runtime/cache',
],
],
];
O SchemaCache requer CacheInterface e o contêiner DI irá resolvê-lo automaticamente.
Configuração manual de cache
Esta configuração é adequada se você quiser usar um driver de cache diferente para o esquema de cache.
Crie um arquivo config/common/di/db-schema-cache.php para cache:
use Yiisoft\Cache\File\FileCache;
use Yiisoft\Db\Cache\SchemaCache;
return [
SchemaCache::class => [
'class' => SchemaCache::class,
'__construct()' => [
new FileCache(__DIR__ . '/../../runtime/cache'),
],
],
];
Desabilitando o cache de esquema
Você pode desabilitar o cache de esquema definindo o parâmetro enabled como false no arquivo config/params.php da sua aplicação:
return [
// ...
'yiisoft/db' => [
'schema-cache' => [
'enabled' => false,
],
],
];
Este parâmetro é automaticamente conectado ao serviço SchemaCache através da configuração de DI do pacote.