Hi James. Thanks for pointing that out. I hadn't noticed that ticket.
I added a note to the ticket with a link to my dev list message.
On 5/23/2019 7:55 PM, James Fournie wrote:
Hi John,
I am not sure how this meshes with your neat functions, but I also filed
a wishlist for this functionality here:
https://bugs.launchpad.net/evergreen/+bug/1815104
On Fri, May 17, 2019 at 6:50 AM John Merriam <[email protected]
<mailto:[email protected]>> wrote:
Hello. We recently had a request to copy some buckets from one user to
another. I did not see any existing functionality to do that in
Evergreen. Moving buckets from one user to another is pretty easy
to do
manually but copying them, not so much. So, I wrote some functions to
copy and move buckets from one user to another. I figured I would
share
them in case someone else finds them useful.
They are in the files attached to this message. One is a support
function used by the other four. These functions only cover the bib
record and copy buckets since those are the only bucket types we are
using in our database at the moment. Making new functions to handle
the
other two bucket types (user and call number) using these functions as
templates should be fairly straightforward.
To load these in to your database so you can make use of them, you
would
need to change all of the *CHANGEME* strings in each file to the
name of
the schema where you want these functions to live. I put them in
one of
our local custom schemas.
The four copy/move functions all take the same four arguments.
First is
the source user id. Second is the destination user id. Third is an
optional list of bucket ids (surrounded by quotes, separated by
commas).
Fourth is a boolean (true or false) as to whether the third bucket
list argument is inclusive or exclusive.
I should mention that I am not an SQL expert so there may be better
ways
to do this. It is also possible that something like this already
exists
somewhere and we just missed it.
Here are a few usage examples:
To move all copy buckets from userid 10 to user 20:
SELECT YOURSCHEMA.move_container_copy(10, 20, NULL, FALSE);
To copy only one bib record bucket with bucket id 103:
SELECT YOURSCHEMA.copy_container_bib_rec(10, 20, '103', TRUE);
To move all copy buckets EXCEPT bucket ids 204 and 206:
SELECT YOURSCHEMA.move_container_copy(10, 20, '204,206', FALSE);
Any bucket ids specified in the third parameter need to belong to the
source user or they wont be copied/moved.
--
John Merriam
Evergreen Systems Specialist
Bibliomation, Inc.
--
John Merriam
Evergreen Systems Specialist
Bibliomation, Inc.
24 Wooster Ave.
Waterbury, CT 06708
203-577-4070 x108