从SugarCRM实例中删除较旧的电子邮件

删除较旧的电子邮件是减少SugarCRM实例存储空间的一种常用方法。在这篇文章中,我想介绍以下可用于删除给定日期之前的电子邮件的选项。
1-批量更新 
2-REST端点 
3-直接DB查询

1 –大量更新

批量更新可以说是更简单的方法,可以通过GUI执行。
导航到列表视图,然后将阈值日期添加到过滤器中。
选择所有记录,然后按删除。

当电子邮件数量大于max_record_fetch_size设置时,需要重复该过程,直到删除所有电子邮件。
这将软删除电子邮件并从文件系统中删除相关附件。
如果目标是释放数据库空间,则可以在之后从数据库中删除这些记录

2 –通过REST端点删除。

处理大量记录时,使用REST端点进行删除可提供更大的灵活性。
我们可以使用以下端点过滤和删除电子邮件:

1 –身份验证
2 –过滤电子邮件
3 –删除电子邮件

为了说明这些端点的用法,我附加了一个POSTMAN集合。
请注意,这是作为测试示例创建的,应进行调整和测试以满足任何生产要求。
要将其用于测试实例,请按照以下步骤操作:

1-导入馆藏和环境:

2-添加实例详细信息和阈值日期:

3-在Sugar中添加postman_script平台

4-运行Collection选择目标环境

这将软删除电子邮件并删除相关附件。

为了释放数据库空间,应从数据库中删除记录。

***修剪已删除的= 1条记录 

在软删除电子邮件之后,我们可以使用以下查询从数据库中删除它们:

DELETE et FROM emails_text et 
INNER JOIN emails e ON e.id = et.email_id 
WHERE e.date_entered < 'YYYY-MM-DD' 
AND et.deleted=1; 

DELETE eb FROM emails_beans eb
INNER JOIN emails e 
ON e.id = eb.email_id
WHERE e.date_entered < 'YYYY-MM-DD' 
AND eb.deleted=1;

DELETE eear FROM emails_email_addr_rel
eear INNER JOIN emails e 
ON e.id = eear.email_id 
WHERE e.date_entered < 'YYYY-MM-DD' 
AND e.deleted=1;

DELETE FROM emails 
WHERE date_entered < 'YYYY-MM-DD' AND deleted=1;

3 –通过直接数据库查询删除。

如果可以进行数据库访问,则也可以选择通过数据库查询删除电子邮件,这在与电子邮件相关的表很大时可能很有用。
为了避免将孤立的行和文件留在文件系统中,需要考虑一些注意事项。

3.1 –删除电子邮件附件

当电子邮件存档到Sugar时,附件将使用Notes模块存储。
该文件被重命名以匹配注释ID,并且注释中的email_id将其链接到父电子邮件。
在删除电子邮件之前,我们需要存储所有注释ID,以使用以下查询将其删除:

SELECT n.id FROM notes n
INNER JOIN emails e 
ON e.id = n.email_id 
WHERE e.date_entered < 'YYYY-MM-DD';

3.2 –通过文件系统删除文件

将上面的查询结果存储在仅包含注释ID的files_to_delete.txt文件中:

有了这些,我们可以使用以下命令删除电子邮件附件:

# transfer the files_to_delete.txt to the upload/ folder

$mv {filelocation}/files_to_delete.txt {sugarinstancelocation}/upload/ 

# Navigate to the upload/ folder and create a subfolder /upload/files_to_delete 

$cd upload 
$mkdir files_to_delete 

# Transfer all the files in the files_to_delete.txt to the files_to_delete subfolder 

$while read file; do mv "$file" files_to_delete; done < files_to_delete.txt 

#remove the /upload/files_to_delete subfolder 

$rm -rf upload/files_to_delete

3.3 –删除注释记录

删除文件后,便笺可以删除。

DELETE notes n 
INNER JOIN emails e
ON e.id = n.email_id 
WHERE e.date_entered < 'YYYY-MM-DD';

3.4-删除电子邮件

删除了存储附件的注释后,我们可以通过以下查询来删除电子邮件。

DELETE et FROM emails_text et 
INNER JOIN emails e ON e.id = et.email_id
WHERE e.date_entered < 'YYYY-MM-DD';

DELETE eb FROM emails_beans eb 
INNER JOIN emails e 
ON e.id = eb.email_id 
WHERE e.date_entered < 'YYYY-MM-DD'; 

DELETE eear FROM emails_email_addr_rel eear 
INNER JOIN emails e 
ON e.id = eear.email_id
WHERE e.date_entered < 'YYYY-MM-DD';

DELETE FROM emails WHERE date_entered < 'YYYY-MM-DD';

推荐阅读

  1. SugarCRM新用户向导
  2. 如何开启使用SugarCRM 11?
  3. 从移动设备访问SugarCRM
  4. 将Google Map添加到SugarCRM模块
  5. SugarCRM重置密码-从数据库重置管理员密码
  6. SugarCRM MS Outlook插件安装指南
  7. SugarCRM MS Outlook插件用户指南
  8. SugarCRM发布了2.7.2版的Outlook插件

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注