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]> 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. > >
