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

Reply via email to