usr INTEGER NOT NULL REFERENCES actor.usr(id)
DEFERRABLE INITIALLY DEFERRED,
xact_start TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
- target_copy BIGINT NOT NULL REFERENCES asset.copy(id)
- DEFERRABLE INITIALLY DEFERRED,
+ target_copy BIGINT NOT NULL, -- asset.copy.id / serial.unit.id
due_date TIMESTAMP WITH TIME ZONE NOT NULL,
checkin_time TIMESTAMP WITH TIME ZONE,
source_circ BIGINT REFERENCES action.circulation(id)
ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED
);
+CREATE TRIGGER action_usr_circ_history_target_copy_trig
+ AFTER INSERT OR UPDATE ON action.usr_circ_history
+ FOR EACH ROW EXECUTE PROCEDURE evergreen.fake_fkey_tgr('target_copy');
+
CREATE OR REPLACE FUNCTION action.maintain_usr_circ_history()
RETURNS TRIGGER AS $FUNK$
DECLARE
usr INTEGER NOT NULL REFERENCES actor.usr(id)
DEFERRABLE INITIALLY DEFERRED,
xact_start TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
- target_copy BIGINT NOT NULL REFERENCES asset.copy(id)
- DEFERRABLE INITIALLY DEFERRED,
+ target_copy BIGINT NOT NULL,
due_date TIMESTAMP WITH TIME ZONE NOT NULL,
checkin_time TIMESTAMP WITH TIME ZONE,
source_circ BIGINT REFERENCES action.circulation(id)
--- /dev/null
+
+BEGIN;
+
+--SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
+
+ALTER TABLE action.usr_circ_history
+ DROP CONSTRAINT IF EXISTS usr_circ_history_target_copy_fkey;
+
+CREATE TRIGGER action_usr_circ_history_target_copy_trig
+ AFTER INSERT OR UPDATE ON action.usr_circ_history
+ FOR EACH ROW EXECUTE PROCEDURE evergreen.fake_fkey_tgr('target_copy');
+
+COMMIT;
+
usr INTEGER NOT NULL REFERENCES actor.usr(id)
DEFERRABLE INITIALLY DEFERRED,
xact_start TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
- target_copy BIGINT NOT NULL REFERENCES asset.copy(id)
- DEFERRABLE INITIALLY DEFERRED,
+ target_copy BIGINT NOT NULL,
due_date TIMESTAMP WITH TIME ZONE NOT NULL,
checkin_time TIMESTAMP WITH TIME ZONE,
source_circ BIGINT REFERENCES action.circulation(id)