X-Git-Url: http://git.equinoxoli.org/?p=migration-tools.git;a=blobdiff_plain;f=remove_ou_data%2F02_remove_patron_extras.sql;fp=remove_ou_data%2F02_remove_patron_extras.sql;h=bc9b96a34fd2cccea4a14e6392d7ef59de96984f;hp=0000000000000000000000000000000000000000;hb=c919228a7234c1fdfa9f9cfbae245fc30731eb85;hpb=8e813de1f6497f0111286a2d751f9c543b4f2871 diff --git a/remove_ou_data/02_remove_patron_extras.sql b/remove_ou_data/02_remove_patron_extras.sql new file mode 100644 index 0000000..bc9b96a --- /dev/null +++ b/remove_ou_data/02_remove_patron_extras.sql @@ -0,0 +1,66 @@ +-- 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 + +ALTER TABLE actor.usr_address DISABLE TRIGGER audit_actor_usr_address_update_trigger; +ALTER TABLE actor.usr DISABLE TRIGGER audit_actor_usr_update_trigger; + +CREATE INDEX tmp_addr_replaces ON actor.usr_address(replaces); +BEGIN; + +DELETE FROM actor.usr_note WHERE usr IN +(SELECT id FROM actor.usr WHERE home_ou IN (SELECT (actor.org_unit_descendants(id)).id from actor.org_unit where shortname = :ou_to_del)); + +DELETE FROM actor.stat_cat_entry_usr_map WHERE target_usr IN +(SELECT id FROM actor.usr WHERE home_ou IN (SELECT (actor.org_unit_descendants(id)).id from actor.org_unit where shortname = :ou_to_del)); + +DELETE FROM actor.usr_activity WHERE usr IN +(SELECT id FROM actor.usr WHERE home_ou IN (SELECT (actor.org_unit_descendants(id)).id from actor.org_unit where shortname = :ou_to_del)); + +DELETE FROM actor.usr_org_unit_opt_in WHERE usr IN +(SELECT id FROM actor.usr WHERE home_ou IN (SELECT (actor.org_unit_descendants(id)).id from actor.org_unit where shortname = :ou_to_del)); + +DELETE FROM actor.usr_password_reset WHERE usr IN +(SELECT id FROM actor.usr WHERE home_ou IN (SELECT (actor.org_unit_descendants(id)).id from actor.org_unit where shortname = :ou_to_del)); + +DELETE FROM actor.usr_saved_search WHERE owner IN +(SELECT id FROM actor.usr WHERE home_ou IN (SELECT (actor.org_unit_descendants(id)).id from actor.org_unit where shortname = :ou_to_del)); + +DELETE FROM actor.usr_setting WHERE usr IN +(SELECT id FROM actor.usr WHERE home_ou IN (SELECT (actor.org_unit_descendants(id)).id from actor.org_unit where shortname = :ou_to_del)); + +DELETE FROM actor.usr_standing_penalty WHERE usr IN +(SELECT id FROM actor.usr WHERE home_ou IN (SELECT (actor.org_unit_descendants(id)).id from actor.org_unit where shortname = :ou_to_del)); + +DELETE FROM actor.card WHERE usr IN +(SELECT id FROM actor.usr WHERE home_ou IN (SELECT (actor.org_unit_descendants(id)).id from actor.org_unit where shortname = :ou_to_del)); +UPDATE actor.usr SET card = NULL +WHERE home_ou IN (SELECT (actor.org_unit_descendants(id)).id from actor.org_unit where shortname = :ou_to_del); + +DELETE FROM actor.usr_address WHERE usr IN +(SELECT id FROM actor.usr WHERE home_ou IN (SELECT (actor.org_unit_descendants(id)).id from actor.org_unit where shortname = :ou_to_del)); +UPDATE actor.usr SET mailing_address = NULL, billing_address = NULL +WHERE home_ou IN (SELECT (actor.org_unit_descendants(id)).id from actor.org_unit where shortname = :ou_to_del); + +COMMIT; + +DROP INDEX actor.tmp_addr_replaces; +ALTER TABLE actor.usr_address ENABLE TRIGGER audit_actor_usr_address_update_trigger; +ALTER TABLE actor.usr ENABLE TRIGGER audit_actor_usr_update_trigger;