Datos Históricos en MongoDB
Por defecto, cada tabla vive en la conexión principal de tu aplicación (PostgreSQL o MySQL) — nada sobre esta función cambia eso a menos que optes por ello. Las tiendas autoalojadas con mucha historia de solo anexar (entradas de registro de actividad, transcripciones de chat, historial de correos electrónicos de CRM) pueden mover solo esas tablas a una conexión separada, incluyendo MongoDB, sin tocar nada más.
Qué se Mueve
- Registro de actividad — la tabla
activity_log(cada entrada de auditoría de creación/actualización/eliminación/inicio de sesión) - Mensajes de chat — la tabla
msg_messagesdel módulo de Mensajería - Historial de correos electrónicos de CRM — las tablas
crm_email_messagesycrm_email_events
Todo lo demás — pedidos, productos, clientes, contabilidad — siempre permanece en tu conexión principal. Este es un movimiento dirigido solo a tablas de historia de alto volumen y rara vez unidas.
Opción A: Otra Conexión SQL
Apunta la historia a cualquier conexión ya definida en config/database.php (por ejemplo, una segunda base de datos Postgres dedicada a registros):
HISTORICAL_DB_CONNECTION=pgsql_history
Esto funciona inmediatamente sin paquetes adicionales — es Eloquent puro en una conexión SQL pura.
Opción B: MongoDB
Un template de conexión mongodb se incluye en config/database.php ya, pero está inactivo hasta que optes por ello:
HISTORICAL_DB_CONNECTION=mongodb
MONGODB_URI=mongodb://user:password@host:27017
MONGODB_DATABASE=storeconsole_history
El soporte para MongoDB requiere dos cosas que esta plataforma no instala por defecto:
- La extensión PHP
mongodben tu servidor composer require mongodb/laravel-mongodb(listada bajosuggesten la raízcomposer.json)
Sin la extensión y el paquete instalados, establecer HISTORICAL_DB_CONNECTION=mongodb se ignora de forma segura — cada modelo vuelve a la conexión por defecto y la aplicación se inicia y ejecuta exactamente como antes.
Soporte Completo para Modelos de MongoDB
Una vez que mongodb/laravel-mongodb está instalado, el cambio de conexión por sí solo te da acceso al nivel del constructor de consultas a la colección de Mongo. Para soporte completo de Eloquent (casts BSON, claves primarias ObjectId, documentos embebidos) también agrega el rasgo MongoDB\Laravel\Eloquent\DocumentModel del paquete al modelo, junto con el rasgo de cambio de conexión que esta plataforma ya incluye en los modelos de historia:
use StoreConsole\PlatformKit\Traits\UsesHistoricalConnection;
use MongoDB\Laravel\Eloquent\DocumentModel;
class Activity extends SpatieActivity
{
use UsesHistoricalConnection;
use DocumentModel;
}
Debido a que Store Console se envía como código fuente completo por licencia, esta adición de una línea es una personalización normal de tu propia copia — no un parche del proveedor.
Cómo Revertir
Desactiva HISTORICAL_DB_CONNECTION (o configúralo de nuevo como vacío) y cada modelo regresa a la conexión por defecto en la siguiente solicitud — no se requiere migración para desactivar la función.

