X-Git-Url: http://git.equinoxoli.org/?p=migration-tools.git;a=blobdiff_plain;f=sql%2Fnuke-patrons-and-circs.sql;h=ba4dc406500bea8b8857577432c958f488737c16;hp=4b7c47f8cfcc401379f85fb83dc82094fa12d402;hb=3bb6926bbb549af97fe1ce2698b7fc15852607fa;hpb=66a5ec18848e64e83bdf7e1bd3ff84bc696a1845 diff --git a/sql/nuke-patrons-and-circs.sql b/sql/nuke-patrons-and-circs.sql index 4b7c47f..ba4dc40 100644 --- a/sql/nuke-patrons-and-circs.sql +++ b/sql/nuke-patrons-and-circs.sql @@ -1,20 +1,53 @@ -alter table actor.usr disable rule protect_user_delete; -begin; -delete from actor.usr where usrname !~ 'admin'; -delete from actor.usr_note where usr not in (select id from actor.usr); -delete from actor.usr_address where usr not in (select id from actor.usr); -delete from actor.card where usr not in (select id from actor.usr); -delete from action.circulation; -delete from action.hold_request; -delete from money.billing; -delete from money.grocery; -delete from action.non_cataloged_circulation; -delete from action.in_house_use; -delete from reporter.template_folder where owner not in (select id from actor.usr); -delete from reporter.report_folder where owner not in (select id from actor.usr); -delete from reporter.output_folder where owner not in (select id from actor.usr); -delete from reporter.template where owner not in (select id from actor.usr); -delete from reporter.report where owner not in (select id from actor.usr); -delete from reporter.schedule where runner not in (select id from actor.usr); -commit; -alter table actor.usr enable rule protect_user_delete; +-- Copyright 2009-2013, Equinox Software, Inc. +-- +-- 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. + +ALTER TABLE actor.usr DISABLE RULE protect_user_delete; +BEGIN; + +-- get transactions out of the way first +TRUNCATE TABLE action.circulation CASCADE; +TRUNCATE TABLE action.hold_request CASCADE; +TRUNCATE TABLE money.payment CASCADE; +TRUNCATE TABLE money.billing CASCADE; +TRUNCATE TABLE money.grocery CASCADE; +TRUNCATE TABLE money.materialized_billable_xact_summary CASCADE; +TRUNCATE TABLE action.non_cataloged_circulation CASCADE; +TRUNCATE TABLE action.in_house_use CASCADE; + +-- This statement is meant to be customized +DELETE FROM actor.usr WHERE usrname !~ 'admin' +AND profile NOT IN (SELECT id FROM permission.grp_tree WHERE name IN ('SIP', 'Unique Mgmt')); + +\echo List of patrons that are left +SELECT id, usrname FROM actor.usr; + +DELETE FROM actor.usr_note WHERE usr NOT IN (SELECT id FROM actor.usr); +DELETE FROM actor.usr_address WHERE usr NOT IN (SELECT id FROM actor.usr); +DELETE FROM actor.card WHERE usr NOT IN (SELECT id FROM actor.usr); +DELETE FROM money.collections_tracker WHERE usr NOT IN (SELECT id FROM actor.usr); +DELETE FROM reporter.template_folder WHERE owner NOT IN (SELECT id FROM actor.usr); +DELETE FROM reporter.report_folder WHERE owner NOT IN (SELECT id FROM actor.usr); +DELETE FROM reporter.output_folder WHERE owner NOT IN (SELECT id FROM actor.usr); +DELETE FROM reporter.template WHERE owner NOT IN (SELECT id FROM actor.usr); +DELETE FROM reporter.report WHERE owner NOT IN (SELECT id FROM actor.usr); +DELETE FROM reporter.schedule WHERE runner NOT IN (SELECT id FROM actor.usr); + +\echo If you are happy with the purge, please run the following: +\echo +\echo COMMIT; +\echo ALTER TABLE actor.usr ENABLE RULE protect_user_delete; +\echo +\echo Finally, please do a VACUUM ANALYZE