通过数据库删除队列

时间:2013-08-27 13:28:18

标签: database queue integrity otrs

目前我使用OTRS进行了一些测试。

我搜索了删除废弃队列的可能性,并通过删除数据库中的记录找到了提示的地方。

的情况进行:

  • 删除约束:

    ALTER TABLE queue_standard_response DROP FOREIGN KEY ‘FK_queue_standard_response_queue_id_id’;

  • 删除记录

    队列表中的一件事,以及queue_standard_response表中的另一件事。

  • 再次添加ADD约束

    ALTER TABLE queue_standard_response ADD CONSTRAINT FK_queue_standard_response_queue_id_id FOREIGN KEY (queue_id) REFERENCES queue (id);

问题是,在清除浏览器缓存后,我仍然会在队列管理器中看到已删除的队列。 OTRS从哪个表中获取这些信息?

有人有解决方案吗?

2 个答案:

答案 0 :(得分:2)

这是本地OTRS应用程序缓存。 如果你在命令行上运行bin/otrs.DeleteCache.pl,你会没事的。

答案 1 :(得分:0)

对于以后阅读此线程并希望通过数据库及其相关票证在OTRS中删除队列的人,可以使用以下片段:

USE `otrs_database`;

# We eliminate the verification of the foreign keys 
# so as not to have to eliminate the constraints
SET FOREIGN_KEY_CHECKS = 0;

# TICKETS
DELETE FROM ticket_index WHERE queue_id = QUEUE_ID;
DELETE FROM ticket_history WHERE queue_id = QUEUE_ID;
DELETE FROM ticket WHERE queue_id = QUEUE_ID;
# QUEUE
DELETE FROM queue_preferences WHERE queue_id = QUEUE_ID;
DELETE FROM queue_standard_template WHERE queue_id = QUEUE_ID;        
DELETE FROM queue_auto_response WHERE queue_id = QUEUE_ID;
DELETE FROM personal_queues WHERE queue_id = QUEUE_ID;
DELETE FROM queue WHERE id = QUEUE_ID;

# We add again the verification of the foreign keys
SET FOREIGN_KEY_CHECKS = 1;

从逻辑上讲,在您需要知道要删除的队列的唯一ID之前。