黑五大促最高立省 60%
  • 年付套餐首年立省 60%
  • 终身授权立省 45%
剩余
立即领取优惠

MongoDB的历史数据

默认情况下,每个表都位于应用程序的主连接(PostgreSQL或MySQL)上——除非您选择加入,否则此功能不会改变这一点。自托管的商店如果有大量的追加历史(活动日志条目、聊天记录、CRM电子邮件历史)可以将这些表单独移动到一个不同的连接,包括MongoDB,而不影响其他内容。

移动内容

  • 活动日志 — activity_log表(每个创建/更新/删除/登录审计条目)
  • 聊天消息 — 消息模块的msg_messages表
  • CRM电子邮件历史 — crm_email_messages和crm_email_events表

其他所有内容——订单、产品、客户、会计——始终保留在您的主连接上。这是针对高容量、很少连接的历史表的有针对性的移动。

选项A:另一个SQL连接

将历史指向在config/database.php中已定义的任何连接(例如,专用于日志的第二个Postgres数据库):

HISTORICAL_DB_CONNECTION=pgsql_history

这可以立即工作,无需额外的包——它是在普通SQL连接上的普通Eloquent。

选项B:MongoDB

一个mongodb连接模板已经在config/database.php中提供,但在您选择加入之前是无效的:

HISTORICAL_DB_CONNECTION=mongodb
MONGODB_URI=mongodb://user:password@host:27017
MONGODB_DATABASE=storeconsole_history

MongoDB支持需要两个此平台默认未安装的东西:

  • 您服务器上的mongodb PHP扩展
  • composer require mongodb/laravel-mongodb(在根suggest下列出在composer.json中)

如果没有安装扩展和包,设置HISTORICAL_DB_CONNECTION=mongodb将被安全忽略——每个模型将回退到默认连接,应用程序将如以前一样启动和运行。

完整的MongoDB模型支持

一旦安装了mongodb/laravel-mongodb,仅连接切换即可让您获得对Mongo集合的查询构建器级别访问。要获得完整的Eloquent支持(BSON类型转换、ObjectId主键、嵌入文档),还需将包的MongoDB\Laravel\Eloquent\DocumentModel特性添加到模型中,连同此平台已在历史模型上提供的连接切换特性:

use StoreConsole\PlatformKit\Traits\UsesHistoricalConnection;
use MongoDB\Laravel\Eloquent\DocumentModel;

class Activity extends SpatieActivity
{
    use UsesHistoricalConnection;
    use DocumentModel;
}

由于Store Console根据许可证提供完整源代码,这一行的添加是您自己副本的正常自定义——而不是供应商补丁。

如何恢复

取消设置HISTORICAL_DB_CONNECTION(或将其设置为空),每个模型将在下一个请求中返回到默认连接——关闭此功能无需迁移。

最后更新:11/7/2026