Advertisement
Guest User

Untitled

a guest
May 16th, 2020
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.71 KB | None | 0 0
  1. .timeout 30000
  2.  
  3. ATTACH DATABASE '/etc/pihole/gravity.db' AS OLD;
  4.  
  5. BEGIN TRANSACTION;
  6.  
  7. DROP TRIGGER tr_domainlist_add;
  8. DROP TRIGGER tr_client_add;
  9. DROP TRIGGER tr_adlist_add;
  10.  
  11. INSERT OR REPLACE INTO "group" SELECT * FROM OLD."group";
  12. INSERT OR REPLACE INTO domain_audit SELECT * FROM OLD.domain_audit;
  13.  
  14. INSERT OR REPLACE INTO domainlist SELECT * FROM OLD.domainlist;
  15. INSERT OR REPLACE INTO domainlist_by_group SELECT * FROM OLD.domainlist_by_group;
  16.  
  17. INSERT OR REPLACE INTO adlist SELECT * FROM OLD.adlist;
  18. INSERT OR REPLACE INTO adlist_by_group SELECT * FROM OLD.adlist_by_group;
  19.  
  20. INSERT OR REPLACE INTO info SELECT * FROM OLD.info;
  21.  
  22. INSERT OR REPLACE INTO client SELECT * FROM OLD.client;
  23. INSERT OR REPLACE INTO client_by_group SELECT * FROM OLD.client_by_group;
  24.  
  25.  
  26. CREATE TRIGGER tr_domainlist_add AFTER INSERT ON domainlist
  27. BEGIN
  28. INSERT INTO domainlist_by_group (domainlist_id, group_id) VALUES (NEW.id, 0);
  29. INSERT INTO domainlist_by_group (domainlist_id, group_id) VALUES (NEW.id, 1);
  30. END;
  31.  
  32. CREATE TRIGGER tr_client_add AFTER INSERT ON client
  33. BEGIN
  34. INSERT INTO client_by_group (client_id, group_id) VALUES (NEW.id, 0);
  35. END;
  36.  
  37. CREATE TRIGGER tr_adlist_add AFTER INSERT ON adlist
  38. BEGIN
  39. INSERT INTO adlist_by_group (adlist_id, group_id) VALUES (NEW.id, 0);
  40. INSERT INTO adlist_by_group (adlist_id, group_id) VALUES (NEW.id, 1);
  41. END;
  42.  
  43. CREATE TRIGGER tr_group_add AFTER INSERT ON "group"
  44. BEGIN
  45. INSERT INTO domainlist_by_group SELECT domainlist.id AS domainlist_id, new_group.group_id
  46. FROM (
  47. SELECT domainlist.id
  48. FROM domainlist
  49. JOIN domainlist_by_group
  50. ON domainlist_by_group.domainlist_id = domainlist.id
  51. WHERE group_id = 0 and domainlist.enabled = 1
  52. ) AS domainlist
  53. LEFT JOIN
  54. (
  55. SELECT "group".id AS group_id
  56. FROM "group"
  57. WHERE "group".id NOT IN
  58. (
  59. SELECT group_id
  60. FROM domainlist_by_group
  61. )
  62. ) AS new_group;
  63. INSERT INTO adlist_by_group SELECT adlist.id AS adlist_id, new_group.group_id
  64. FROM (
  65. SELECT adlist.id
  66. FROM adlist
  67. JOIN adlist_by_group
  68. ON adlist_by_group.adlist_id = adlist.id
  69. WHERE group_id = 0 and adlist.enabled = 1
  70. ) AS adlist
  71. LEFT JOIN
  72. (
  73. SELECT "group".id AS group_id
  74. FROM "group"
  75. WHERE "group".id NOT IN
  76. (
  77. SELECT group_id
  78. FROM adlist_by_group
  79. )
  80. ) AS new_group;
  81. END;
  82. COMMIT;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement