From 0f04d792ca52ef7a8c91853046c476b3b5daf37f Mon Sep 17 00:00:00 2001 From: Rogan Hamby Date: Mon, 27 Feb 2017 08:37:02 -0500 Subject: [PATCH 1/1] add a script to aid in generating the delete file for patrons in remove_ou scripts --- remove_ou_data/16_delete_usrs_stage_1.sql | 35 +++++++++++++++++++++++++++++ remove_ou_data/README | 8 ------ 2 files changed, 35 insertions(+), 8 deletions(-) create mode 100644 remove_ou_data/16_delete_usrs_stage_1.sql diff --git a/remove_ou_data/16_delete_usrs_stage_1.sql b/remove_ou_data/16_delete_usrs_stage_1.sql new file mode 100644 index 0000000..32eaf30 --- /dev/null +++ b/remove_ou_data/16_delete_usrs_stage_1.sql @@ -0,0 +1,35 @@ +-- Copyright 2015, Equinox Software, Inc. +-- Author: Galen Charlton +-- +-- This program is free software; you can redistribute it and/or +-- modify it under the terms of the GNU General Public License +-- as published by the Free Software Foundation; either version 2 +-- of the License, or (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +\set ou_to_del ''''EXAMPLE'''' +\set ECHO all +\timing + +\t +\psql format unaligned +\o 16_delete_usrs_stage_2.sql + +SELECT 'ALTER TABLE actor.usr DISABLE RULE protect_user_delete;'; +SELECT 'DELETE FROM actor.usr WHERE id = ' || id || ';' +FROM actor.usr WHERE home_ou IN ( + SELECT (actor.org_unit_descendants(id)).id FROM actor.org_unit + WHERE shortname = :ou_to_del +); +SELECT 'ALTER TABLE actor.usr ENABLE RULE protect_user_delete;'; + +\o + diff --git a/remove_ou_data/README b/remove_ou_data/README index 00d2bf3..cbb2cb4 100644 --- a/remove_ou_data/README +++ b/remove_ou_data/README @@ -3,14 +3,6 @@ remove data belonging to an OU and its descendants in an Evergreen database. Each script uses a variable called ou_to_del that should be set to the shortname of the OU to remove. -Generate script to delete users: - -SELECT 'DELETE FROM actor.usr WHERE id = ' || id || ';' -FROM actor.usr WHERE home_ou IN ( - SELECT (actor.org_unit_descendants(id)).id FROM actor.org_unit - WHERE shortname = 'EXAMPLE' -); - After running through the scripts, it should be possible to remove the actor.org_unit entries themselves. -- 1.7.2.5