Add CGIAR Library migration notes

This commit is contained in:
Alan Orth 2017-09-18 18:05:57 +03:00
parent 0e03e994b6
commit 361acaa37f
Signed by: alanorth
GPG Key ID: 0FB860CC9C45B1B9
41 changed files with 924 additions and 85 deletions

View File

@ -0,0 +1,157 @@
+++
title = "CGIAR Library Migration"
date = 2017-09-18T16:38:35+03:00
description = "Notes on the migration of the CGIAR Library to CGSpace"
categories = ["Notes"]
slug = "cgiar-library-migration"
+++
_Temporarily making this a page because it seems Hugo (currently 0.27.1) cannot use a custom slug for a post when there is a permalink defined in `config.toml`_
Rough notes for importing the CGIAR Library content. It was decided that this content would go to a new top-level community called _CGIAR System Organization_.
## Pre-migration Technical TODOs
Things that need to happen before the migration:
- [x] Create top-level community on CGSpace to hold the CGIAR Library content: 10568/83389
- [x] Update nginx redirects in ansible templates
- [x] Update handle in DSpace XMLUI config
- Set up nginx redirects for URLs like:
- [x] https://library.cgiar.org/bitstream/handle/10947/2699/CGIAR_Branding_Guidelines_and_Toolkit.pdf
- [x] https://library.cgiar.org/handle/10947/4258
- [ ] Merge [#339](https://github.com/ilri/DSpace/pull/339) to `5_x-prod` branch and rebuild DSpace
- [x] Increase `max_connections` in `/etc/postgresql/9.5/main/postgresql.conf` by ~10
- `SELECT * FROM pg_stat_activity;` seems to show ~6 extra connections used by the command line tools during import
- [x] Temporarily disable nightly `index-discovery` cron job because the import process will be taking place during some of this time and I don't want them to be competing to update the Solr index
## Migration
Process for the actual migration:
- Export all top-level communities and collections from DSpace Test:
```console
$ export PATH=$PATH:/home/dspacetest.cgiar.org/bin
$ dspace packager -d -a -t AIP -e aorth@mjanja.ch -i 10947/2515 10947-2515/10947-2515.zip
$ dspace packager -d -a -t AIP -e aorth@mjanja.ch -i 10947/2516 10947-2516/10947-2516.zip
$ dspace packager -d -a -t AIP -e aorth@mjanja.ch -i 10947/2517 10947-2517/10947-2517.zip
$ dspace packager -d -a -t AIP -e aorth@mjanja.ch -i 10947/2518 10947-2518/10947-2518.zip
$ dspace packager -d -a -t AIP -e aorth@mjanja.ch -i 10947/2519 10947-2519/10947-2519.zip
$ dspace packager -d -a -t AIP -e aorth@mjanja.ch -i 10947/2708 10947-2708/10947-2708.zip
$ dspace packager -d -a -t AIP -e aorth@mjanja.ch -i 10947/2526 10947-2526/10947-2526.zip
$ dspace packager -d -a -t AIP -e aorth@mjanja.ch -i 10947/2871 10947-2871/10947-2871.zip
$ dspace packager -d -a -t AIP -e aorth@mjanja.ch -i 10947/2527 10947-2527/10947-2527.zip
$ dspace packager -d -a -t AIP -e aorth@mjanja.ch -i 10568/93759 10568-93759/10568-93759.zip
$ dspace packager -d -a -t AIP -e aorth@mjanja.ch -i 10568/93760 10568-93760/10568-93760.zip
$ dspace packager -d -a -t AIP -e aorth@mjanja.ch -i 10947/1 10947-1/10947-1.zip
```
- Import to CGSpace (also see [notes from 2017-05-10](http://alanorth.github.io/cgspace-notes/2017-05/#2017-05-10))
- [x] Copy all exports from DSpace Test
- [x] Add ingestion overrides to `dspace.cfg` before import:
```
mets.dspaceAIP.ingest.crosswalk.METSRIGHTS = NIL
mets.dspaceAIP.ingest.crosswalk.DSPACE-ROLES = NIL
```
- [x] Import communities and collections, paying attention to options to skip missing parents and ignore handles:
```console
$ export JAVA_OPTS="-Dfile.encoding=UTF-8 -Xmx3072m -XX:-UseGCOverheadLimit -XX:+TieredCompilation -XX:TieredStopAtLevel=1"
$ export PATH=$PATH:/home/cgspace.cgiar.org/bin
$ dspace packager -r -u -a -t AIP -o skipIfParentMissing=true -e aorth@mjanja.ch -p 10568/83389 10947-2515/10947-2515.zip
$ dspace packager -r -u -a -t AIP -o skipIfParentMissing=true -e aorth@mjanja.ch -p 10568/83389 10947-2516/10947-2516.zip
$ dspace packager -r -u -a -t AIP -o skipIfParentMissing=true -e aorth@mjanja.ch -p 10568/83389 10947-2517/10947-2517.zip
$ dspace packager -r -u -a -t AIP -o skipIfParentMissing=true -e aorth@mjanja.ch -p 10568/83389 10947-2518/10947-2518.zip
$ dspace packager -r -u -a -t AIP -o skipIfParentMissing=true -e aorth@mjanja.ch -p 10568/83389 10947-2519/10947-2519.zip
$ dspace packager -r -u -a -t AIP -o skipIfParentMissing=true -e aorth@mjanja.ch -p 10568/83389 10947-2708/10947-2708.zip
$ dspace packager -r -u -a -t AIP -o skipIfParentMissing=true -e aorth@mjanja.ch -p 10568/83389 10947-2526/10947-2526.zip
$ dspace packager -r -u -a -t AIP -o skipIfParentMissing=true -e aorth@mjanja.ch -p 10568/83389 10947-2871/10947-2871.zip
$ dspace packager -r -u -a -t AIP -o skipIfParentMissing=true -e aorth@mjanja.ch -p 10568/83389 10947-4467/10947-4467.zip
$ dspace packager -s -u -t AIP -o ignoreHandle=false -e aorth@mjanja.ch -p 10568/83389 10947-2527/10947-2527.zip
$ for item in 10947-2527/ITEM@10947-*; do dspace packager -r -f -u -t AIP -e aorth@mjanja.ch $item; done
$ dspace packager -s -t AIP -o ignoreHandle=false -e aorth@mjanja.ch -p 10568/83389 10947-1/10947-1.zip
$ for collection in 10947-1/COLLECTION@10947-*; do dspace packager -s -o ignoreHandle=false -t AIP -e aorth@mjanja.ch -p 10947/1 $collection; done
$ for item in 10947-1/ITEM@10947-*; do dspace packager -r -f -u -t AIP -e aorth@mjanja.ch $item; done
```
- This submits AIP hierarchies recursively (-r) and suppresses errors when an item's parent collection hasn't been created yet—for example, if the item is mapped
- The large historic archive (10947/1) is created in several steps because it requires a lot of memory and often crashes
- Create new subcommunities and collections for content we reorganized into new hierarchies from the original:
- [x] Create _CGIAR System Management Board_ sub-community: 10568/83536
- [x] Content from _CGIAR System Management Board documents_ collection (10947/4561) goes here
- Import collection hierarchy first and then the items:
```
$ dspace packager -r -t AIP -o ignoreHandle=false -e aorth@mjanja.ch -p 10568/83536 10568-93760/COLLECTION@10947-4651.zip
$ for item in 10568-93760/ITEM@10947-465*; do dspace packager -r -f -u -t AIP -e aorth@mjanja.ch $item; done
```
- [x] Create _CGIAR System Management Office_ sub-community: 10568/83537
- [x] Create _CGIAR System Management Office documents_ collection: 10568/83538
- Import items to collection individually in replace mode (-r) while explicitly preserving handles and ignoring parents:
```
$ for item in 10568-93759/ITEM@10947-46*; do dspace packager -r -t AIP -o ignoreHandle=false -o ignoreParent=true -e aorth@mjanja.ch -p 10568/83538 $item; done
```
- Get the handles for the last few items from CGIAR Library that were created since we did the migration to DSpace Test in May:
```
dspace=# select handle from item, handle where handle.resource_id = item.item_id AND item.item_id in (select item_id from metadatavalue where metadata_field_id=11 and date(text_value) > '2017-05-01T00:00:00Z');
```
- Export them from the CGIAR Library:
```
# for handle in 10947/4658 10947/4659 10947/4660 10947/4661 10947/4665 10947/4664 10947/4666 10947/4669; do /usr/local/dspace/bin/dspace packager -d -a -t AIP -e m.marus@cgiar.org -i $handle ${handle}.zip; done
```
- Import on CGSpace:
```
$ for item in 10947-latest/*.zip; do dspace packager -r -u -t AIP -e aorth@mjanja.ch $item; done
```
- [ ] Shut down Tomcat and run `update-sequences.sql` as the system's `postgres` user
## Post Migration
- [x] Remove ingestion overrides from `dspace.cfg`
- [ ] Reset PostgreSQL `max_connections` to 183
- [x] Enable nightly `index-discovery` cron job
- HTTPS certificates:
- [x] Install current certificates from their Tomcat keystore
```console
$ keytool -list -keystore tomcat.keystore
$ keytool -importkeystore -srckeystore tomcat.keystore -destkeystore library.cgiar.org.p12 -deststoretype PKCS12 -srcalias tomcat
$ openssl pkcs12 -in library.cgiar.org.p12 -nokeys -out library.cgiar.org.crt.pem
$ openssl pkcs12 -in library.cgiar.org.p12 -nodes -nocerts -out library.cgiar.org.key.pem
$ wget https://certs.godaddy.com/repository/gdroot-g2.crt https://certs.godaddy.com/repository/gdig2.crt.pem
$ cat library.cgiar.org.crt.pem gdig2.crt.pem > library.cgiar.org-chained.pem
```
- [ ] Update DNS records:
- CNAME: cgspace.cgiar.org
- [ ] Re-deploy DSpace from freshly built `5_x-prod` branch
- [ ] Run system updates and reboot server
- [ ] Switch to Let's Encrypt HTTPS certificates (after DNS is updated and server isn't busy)
```console
$ sudo systemctl stop tomcat7
$ ./letsencrypt-auto certonly --standalone -d library.cgiar.org
```
- [ ] Merge `cgiar-library` branch to `master` and re-run ansible nginx templates
## Troubleshooting
### Foreign Key Error in `dspace cleanup`
The cleanup script is sometimes used during import processes to clean the database and assetstore after failed AIP imports. If you see the following error with `dspace cleanup -v`:
```
Error: ERROR: update or delete on table "bitstream" violates foreign key constraint "bundle_primary_bitstream_id_fkey" on table "bundle"
Detail: Key (bitstream_id)=(119841) is still referenced from table "bundle".
```
The solution is to set the `primary_bitstream_id` to NULL in PostgreSQL:
```
dspace=# update bundle set primary_bitstream_id=NULL where primary_bitstream_id in (119841);
```
### PSQLException During AIP Ingest
After a few rounds of ingesting—possibly with failures—you might end up with inconsistent IDs in the database. In this case, during AIP ingest of a single collection in submit mode (-s):
```
org.dspace.content.packager.PackageValidationException: Exception while ingesting 10947-2527/10947-2527.zip, Reason: org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "handle_pkey"
Detail: Key (handle_id)=(86227) already exists.
```
The normal solution is to run the `update-sequences.sql` script (with Tomcat shut down) but it doesn't seem to work in this case. Finding the maximum `handle_id` and manually updating the sequence seems to work:
```
dspace=# select * from handle where handle_id=(select max(handle_id) from handle);
dspace=# select setval('handle_seq',86873);
```

View File

@ -25,7 +25,7 @@ $ psql -c 'SELECT * from pg_stat_activity;' | grep idle | grep -c cgspac
<meta property="article:published_time" content="2015-11-23T17:00:57&#43;03:00"/>
<meta property="article:modified_time" content="2016-09-28T17:02:30&#43;03:00"/>
<meta property="article:modified_time" content="2015-11-23T17:00:57&#43;03:00"/>
@ -63,7 +63,7 @@ $ psql -c &#39;SELECT * from pg_stat_activity;&#39; | grep idle | grep -c cgspac
"url": "https://alanorth.github.io/cgspace-notes/2015-11/",
"wordCount": "798",
"datePublished": "2015-11-23T17:00:57&#43;03:00",
"dateModified": "2016-09-28T17:02:30&#43;03:00",
"dateModified": "2015-11-23T17:00:57&#43;03:00",
"author": {
"@type": "Person",
"name": "Alan Orth"
@ -99,6 +99,9 @@ $ psql -c &#39;SELECT * from pg_stat_activity;&#39; | grep idle | grep -c cgspac
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -26,7 +26,7 @@ Replace lzop with xz in log compression cron jobs on DSpace Test—it uses less
<meta property="article:published_time" content="2015-12-02T13:18:00&#43;03:00"/>
<meta property="article:modified_time" content="2017-01-09T16:18:07&#43;02:00"/>
<meta property="article:modified_time" content="2015-12-02T13:18:00&#43;03:00"/>
@ -65,7 +65,7 @@ Replace lzop with xz in log compression cron jobs on DSpace Test—it uses less
"url": "https://alanorth.github.io/cgspace-notes/2015-12/",
"wordCount": "753",
"datePublished": "2015-12-02T13:18:00&#43;03:00",
"dateModified": "2017-01-09T16:18:07&#43;02:00",
"dateModified": "2015-12-02T13:18:00&#43;03:00",
"author": {
"@type": "Person",
"name": "Alan Orth"
@ -101,6 +101,9 @@ Replace lzop with xz in log compression cron jobs on DSpace Test—it uses less
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -21,7 +21,7 @@ Update GitHub wiki for documentation of maintenance tasks.
<meta property="article:published_time" content="2016-01-13T13:18:00&#43;03:00"/>
<meta property="article:modified_time" content="2017-01-09T16:18:07&#43;02:00"/>
<meta property="article:modified_time" content="2016-01-13T13:18:00&#43;03:00"/>
@ -55,7 +55,7 @@ Update GitHub wiki for documentation of maintenance tasks.
"url": "https://alanorth.github.io/cgspace-notes/2016-01/",
"wordCount": "466",
"datePublished": "2016-01-13T13:18:00&#43;03:00",
"dateModified": "2017-01-09T16:18:07&#43;02:00",
"dateModified": "2016-01-13T13:18:00&#43;03:00",
"author": {
"@type": "Person",
"name": "Alan Orth"
@ -91,6 +91,9 @@ Update GitHub wiki for documentation of maintenance tasks.
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -28,7 +28,7 @@ Also, lots of things like &ldquo;COTE D`LVOIRE&rdquo; and &ldquo;COTE D IVOIRE&r
<meta property="article:published_time" content="2016-02-05T13:18:00&#43;03:00"/>
<meta property="article:modified_time" content="2017-01-09T16:18:07&#43;02:00"/>
<meta property="article:modified_time" content="2016-02-05T13:18:00&#43;03:00"/>
@ -69,7 +69,7 @@ Also, lots of things like &ldquo;COTE D`LVOIRE&rdquo; and &ldquo;COTE D IVOIRE&r
"url": "https://alanorth.github.io/cgspace-notes/2016-02/",
"wordCount": "1657",
"datePublished": "2016-02-05T13:18:00&#43;03:00",
"dateModified": "2017-01-09T16:18:07&#43;02:00",
"dateModified": "2016-02-05T13:18:00&#43;03:00",
"author": {
"@type": "Person",
"name": "Alan Orth"
@ -105,6 +105,9 @@ Also, lots of things like &ldquo;COTE D`LVOIRE&rdquo; and &ldquo;COTE D IVOIRE&r
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -21,7 +21,7 @@ Reinstall my local (Mac OS X) DSpace stack with Tomcat 7, PostgreSQL 9.3, and Ja
<meta property="article:published_time" content="2016-03-02T16:50:00&#43;03:00"/>
<meta property="article:modified_time" content="2017-01-09T16:18:07&#43;02:00"/>
<meta property="article:modified_time" content="2016-03-02T16:50:00&#43;03:00"/>
@ -55,7 +55,7 @@ Reinstall my local (Mac OS X) DSpace stack with Tomcat 7, PostgreSQL 9.3, and Ja
"url": "https://alanorth.github.io/cgspace-notes/2016-03/",
"wordCount": "1581",
"datePublished": "2016-03-02T16:50:00&#43;03:00",
"dateModified": "2017-01-09T16:18:07&#43;02:00",
"dateModified": "2016-03-02T16:50:00&#43;03:00",
"author": {
"@type": "Person",
"name": "Alan Orth"
@ -91,6 +91,9 @@ Reinstall my local (Mac OS X) DSpace stack with Tomcat 7, PostgreSQL 9.3, and Ja
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -23,7 +23,7 @@ Also, I noticed the checker log has some errors we should pay attention to:
<meta property="article:published_time" content="2016-04-04T11:06:00&#43;03:00"/>
<meta property="article:modified_time" content="2016-09-28T17:02:30&#43;03:00"/>
<meta property="article:modified_time" content="2016-04-04T11:06:00&#43;03:00"/>
@ -59,7 +59,7 @@ Also, I noticed the checker log has some errors we should pay attention to:
"url": "https://alanorth.github.io/cgspace-notes/2016-04/",
"wordCount": "2006",
"datePublished": "2016-04-04T11:06:00&#43;03:00",
"dateModified": "2016-09-28T17:02:30&#43;03:00",
"dateModified": "2016-04-04T11:06:00&#43;03:00",
"author": {
"@type": "Person",
"name": "Alan Orth"
@ -95,6 +95,9 @@ Also, I noticed the checker log has some errors we should pay attention to:
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -25,7 +25,7 @@ There are 3,000 IPs accessing the REST API in a 24-hour period!
<meta property="article:published_time" content="2016-05-01T23:06:00&#43;03:00"/>
<meta property="article:modified_time" content="2017-01-09T16:18:07&#43;02:00"/>
<meta property="article:modified_time" content="2016-05-01T23:06:00&#43;03:00"/>
@ -63,7 +63,7 @@ There are 3,000 IPs accessing the REST API in a 24-hour period!
"url": "https://alanorth.github.io/cgspace-notes/2016-05/",
"wordCount": "1349",
"datePublished": "2016-05-01T23:06:00&#43;03:00",
"dateModified": "2017-01-09T16:18:07&#43;02:00",
"dateModified": "2016-05-01T23:06:00&#43;03:00",
"author": {
"@type": "Person",
"name": "Alan Orth"
@ -99,6 +99,9 @@ There are 3,000 IPs accessing the REST API in a 24-hour period!
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -24,7 +24,7 @@ Working on second phase of metadata migration, looks like this will work for mov
<meta property="article:published_time" content="2016-06-01T10:53:00&#43;03:00"/>
<meta property="article:modified_time" content="2017-01-09T16:18:07&#43;02:00"/>
<meta property="article:modified_time" content="2016-06-01T10:53:00&#43;03:00"/>
@ -61,7 +61,7 @@ Working on second phase of metadata migration, looks like this will work for mov
"url": "https://alanorth.github.io/cgspace-notes/2016-06/",
"wordCount": "1549",
"datePublished": "2016-06-01T10:53:00&#43;03:00",
"dateModified": "2017-01-09T16:18:07&#43;02:00",
"dateModified": "2016-06-01T10:53:00&#43;03:00",
"author": {
"@type": "Person",
"name": "Alan Orth"
@ -97,6 +97,9 @@ Working on second phase of metadata migration, looks like this will work for mov
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -32,7 +32,7 @@ In this case the select query was showing 95 results before the update
<meta property="article:published_time" content="2016-07-01T10:53:00&#43;03:00"/>
<meta property="article:modified_time" content="2017-01-09T16:18:07&#43;02:00"/>
<meta property="article:modified_time" content="2016-07-01T10:53:00&#43;03:00"/>
@ -77,7 +77,7 @@ In this case the select query was showing 95 results before the update
"url": "https://alanorth.github.io/cgspace-notes/2016-07/",
"wordCount": "866",
"datePublished": "2016-07-01T10:53:00&#43;03:00",
"dateModified": "2017-01-09T16:18:07&#43;02:00",
"dateModified": "2016-07-01T10:53:00&#43;03:00",
"author": {
"@type": "Person",
"name": "Alan Orth"
@ -113,6 +113,9 @@ In this case the select query was showing 95 results before the update
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -29,7 +29,7 @@ $ git rebase -i dspace-5.5
<meta property="article:published_time" content="2016-08-01T15:53:00&#43;03:00"/>
<meta property="article:modified_time" content="2017-01-09T16:18:07&#43;02:00"/>
<meta property="article:modified_time" content="2016-08-01T15:53:00&#43;03:00"/>
@ -71,7 +71,7 @@ $ git rebase -i dspace-5.5
"url": "https://alanorth.github.io/cgspace-notes/2016-08/",
"wordCount": "1514",
"datePublished": "2016-08-01T15:53:00&#43;03:00",
"dateModified": "2017-01-09T16:18:07&#43;02:00",
"dateModified": "2016-08-01T15:53:00&#43;03:00",
"author": {
"@type": "Person",
"name": "Alan Orth"
@ -107,6 +107,9 @@ $ git rebase -i dspace-5.5
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -25,7 +25,7 @@ $ ldapsearch -x -H ldaps://svcgroot2.cgiarad.org:3269/ -b &quot;dc=cgiarad,dc=or
<meta property="article:published_time" content="2016-09-01T15:53:00&#43;03:00"/>
<meta property="article:modified_time" content="2017-01-09T16:18:07&#43;02:00"/>
<meta property="article:modified_time" content="2016-09-01T15:53:00&#43;03:00"/>
@ -63,7 +63,7 @@ $ ldapsearch -x -H ldaps://svcgroot2.cgiarad.org:3269/ -b &quot;dc=cgiarad,dc=or
"url": "https://alanorth.github.io/cgspace-notes/2016-09/",
"wordCount": "3298",
"datePublished": "2016-09-01T15:53:00&#43;03:00",
"dateModified": "2017-01-09T16:18:07&#43;02:00",
"dateModified": "2016-09-01T15:53:00&#43;03:00",
"author": {
"@type": "Person",
"name": "Alan Orth"
@ -99,6 +99,9 @@ $ ldapsearch -x -H ldaps://svcgroot2.cgiarad.org:3269/ -b &quot;dc=cgiarad,dc=or
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -29,7 +29,7 @@ I exported a random item&rsquo;s metadata as CSV, deleted all columns except id
<meta property="article:published_time" content="2016-10-03T15:53:00&#43;03:00"/>
<meta property="article:modified_time" content="2017-01-10T16:21:47&#43;02:00"/>
<meta property="article:modified_time" content="2016-10-03T15:53:00&#43;03:00"/>
@ -71,7 +71,7 @@ I exported a random item&rsquo;s metadata as CSV, deleted all columns except id
"url": "https://alanorth.github.io/cgspace-notes/2016-10/",
"wordCount": "1828",
"datePublished": "2016-10-03T15:53:00&#43;03:00",
"dateModified": "2017-01-10T16:21:47&#43;02:00",
"dateModified": "2016-10-03T15:53:00&#43;03:00",
"author": {
"@type": "Person",
"name": "Alan Orth"
@ -107,6 +107,9 @@ I exported a random item&rsquo;s metadata as CSV, deleted all columns except id
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -21,7 +21,7 @@ Add dc.type to the output options for Atmire&rsquo;s Listings and Reports module
<meta property="article:published_time" content="2016-11-01T09:21:00&#43;03:00"/>
<meta property="article:modified_time" content="2017-01-10T16:21:47&#43;02:00"/>
<meta property="article:modified_time" content="2016-11-01T09:21:00&#43;03:00"/>
@ -55,7 +55,7 @@ Add dc.type to the output options for Atmire&rsquo;s Listings and Reports module
"url": "https://alanorth.github.io/cgspace-notes/2016-11/",
"wordCount": "2825",
"datePublished": "2016-11-01T09:21:00&#43;03:00",
"dateModified": "2017-01-10T16:21:47&#43;02:00",
"dateModified": "2016-11-01T09:21:00&#43;03:00",
"author": {
"@type": "Person",
"name": "Alan Orth"
@ -91,6 +91,9 @@ Add dc.type to the output options for Atmire&rsquo;s Listings and Reports module
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -33,7 +33,7 @@ Another worrying error from dspace.log is:
<meta property="article:published_time" content="2016-12-02T10:43:00&#43;03:00"/>
<meta property="article:modified_time" content="2017-01-10T16:21:47&#43;02:00"/>
<meta property="article:modified_time" content="2016-12-02T10:43:00&#43;03:00"/>
@ -79,7 +79,7 @@ Another worrying error from dspace.log is:
"url": "https://alanorth.github.io/cgspace-notes/2016-12/",
"wordCount": "4078",
"datePublished": "2016-12-02T10:43:00&#43;03:00",
"dateModified": "2017-01-10T16:21:47&#43;02:00",
"dateModified": "2016-12-02T10:43:00&#43;03:00",
"author": {
"@type": "Person",
"name": "Alan Orth"
@ -115,6 +115,9 @@ Another worrying error from dspace.log is:
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -21,7 +21,7 @@ I asked on the dspace-tech mailing list because it seems to be broken, and actua
<meta property="article:published_time" content="2017-01-02T10:43:00&#43;03:00"/>
<meta property="article:modified_time" content="2017-01-29T13:18:32&#43;02:00"/>
<meta property="article:modified_time" content="2017-01-02T10:43:00&#43;03:00"/>
@ -55,7 +55,7 @@ I asked on the dspace-tech mailing list because it seems to be broken, and actua
"url": "https://alanorth.github.io/cgspace-notes/2017-01/",
"wordCount": "1594",
"datePublished": "2017-01-02T10:43:00&#43;03:00",
"dateModified": "2017-01-29T13:18:32&#43;02:00",
"dateModified": "2017-01-02T10:43:00&#43;03:00",
"author": {
"@type": "Person",
"name": "Alan Orth"
@ -91,6 +91,9 @@ I asked on the dspace-tech mailing list because it seems to be broken, and actua
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -35,7 +35,7 @@ Looks like we&rsquo;ll be using cg.identifier.ccafsprojectpii as the field name
<meta property="article:published_time" content="2017-02-07T07:04:52-08:00"/>
<meta property="article:modified_time" content="2017-02-28T22:58:29&#43;02:00"/>
<meta property="article:modified_time" content="2017-02-07T07:04:52-08:00"/>
@ -83,7 +83,7 @@ Looks like we&rsquo;ll be using cg.identifier.ccafsprojectpii as the field name
"url": "https://alanorth.github.io/cgspace-notes/2017-02/",
"wordCount": "2028",
"datePublished": "2017-02-07T07:04:52-08:00",
"dateModified": "2017-02-28T22:58:29&#43;02:00",
"dateModified": "2017-02-07T07:04:52-08:00",
"author": {
"@type": "Person",
"name": "Alan Orth"
@ -119,6 +119,9 @@ Looks like we&rsquo;ll be using cg.identifier.ccafsprojectpii as the field name
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -37,7 +37,7 @@ $ identify ~/Desktop/alc_contrastes_desafios.jpg
<meta property="article:published_time" content="2017-03-01T17:08:52&#43;02:00"/>
<meta property="article:modified_time" content="2017-03-31T05:36:10&#43;03:00"/>
<meta property="article:modified_time" content="2017-03-01T17:08:52&#43;02:00"/>
@ -87,7 +87,7 @@ $ identify ~/Desktop/alc_contrastes_desafios.jpg
"url": "https://alanorth.github.io/cgspace-notes/2017-03/",
"wordCount": "1538",
"datePublished": "2017-03-01T17:08:52&#43;02:00",
"dateModified": "2017-03-31T05:36:10&#43;03:00",
"dateModified": "2017-03-01T17:08:52&#43;02:00",
"author": {
"@type": "Person",
"name": "Alan Orth"
@ -123,6 +123,9 @@ $ identify ~/Desktop/alc_contrastes_desafios.jpg
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -30,7 +30,7 @@ $ [dspace]/bin/dspace filter-media -f -i 10568/16498 -p &quot;ImageMagick PDF Th
<meta property="article:published_time" content="2017-04-02T17:08:52&#43;02:00"/>
<meta property="article:modified_time" content="2017-04-26T13:35:10&#43;03:00"/>
<meta property="article:modified_time" content="2017-04-02T17:08:52&#43;02:00"/>
@ -73,7 +73,7 @@ $ [dspace]/bin/dspace filter-media -f -i 10568/16498 -p &quot;ImageMagick PDF Th
"url": "https://alanorth.github.io/cgspace-notes/2017-04/",
"wordCount": "2917",
"datePublished": "2017-04-02T17:08:52&#43;02:00",
"dateModified": "2017-04-26T13:35:10&#43;03:00",
"dateModified": "2017-04-02T17:08:52&#43;02:00",
"author": {
"@type": "Person",
"name": "Alan Orth"
@ -109,6 +109,9 @@ $ [dspace]/bin/dspace filter-media -f -i 10568/16498 -p &quot;ImageMagick PDF Th
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -13,7 +13,7 @@
<meta property="article:published_time" content="2017-05-01T16:21:52&#43;02:00"/>
<meta property="article:modified_time" content="2017-09-10T17:46:54&#43;03:00"/>
<meta property="article:modified_time" content="2017-05-01T16:21:52&#43;02:00"/>
@ -39,7 +39,7 @@
"url": "https://alanorth.github.io/cgspace-notes/2017-05/",
"wordCount": "2398",
"datePublished": "2017-05-01T16:21:52&#43;02:00",
"dateModified": "2017-09-10T17:46:54&#43;03:00",
"dateModified": "2017-05-01T16:21:52&#43;02:00",
"author": {
"@type": "Person",
"name": "Alan Orth"
@ -75,6 +75,9 @@
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -13,7 +13,7 @@
<meta property="article:published_time" content="2017-06-01T10:14:52&#43;03:00"/>
<meta property="article:modified_time" content="2017-06-30T18:34:51&#43;03:00"/>
<meta property="article:modified_time" content="2017-06-01T10:14:52&#43;03:00"/>
@ -39,7 +39,7 @@
"url": "https://alanorth.github.io/cgspace-notes/2017-06/",
"wordCount": "1261",
"datePublished": "2017-06-01T10:14:52&#43;03:00",
"dateModified": "2017-06-30T18:34:51&#43;03:00",
"dateModified": "2017-06-01T10:14:52&#43;03:00",
"author": {
"@type": "Person",
"name": "Alan Orth"
@ -75,6 +75,9 @@
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -27,7 +27,7 @@ We can use PostgreSQL&rsquo;s extended output format (-x) plus sed to format the
<meta property="article:published_time" content="2017-07-01T18:03:52&#43;03:00"/>
<meta property="article:modified_time" content="2017-08-01T08:55:37&#43;03:00"/>
<meta property="article:modified_time" content="2017-07-01T18:03:52&#43;03:00"/>
@ -67,7 +67,7 @@ We can use PostgreSQL&rsquo;s extended output format (-x) plus sed to format the
"url": "https://alanorth.github.io/cgspace-notes/2017-07/",
"wordCount": "1151",
"datePublished": "2017-07-01T18:03:52&#43;03:00",
"dateModified": "2017-08-01T08:55:37&#43;03:00",
"dateModified": "2017-07-01T18:03:52&#43;03:00",
"author": {
"@type": "Person",
"name": "Alan Orth"
@ -103,6 +103,9 @@ We can use PostgreSQL&rsquo;s extended output format (-x) plus sed to format the
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -37,7 +37,7 @@ Then I cleaned up the author authorities and HTML characters in OpenRefine and s
<meta property="article:published_time" content="2017-08-01T11:51:52&#43;03:00"/>
<meta property="article:modified_time" content="2017-09-10T19:18:52&#43;03:00"/>
<meta property="article:modified_time" content="2017-08-01T11:51:52&#43;03:00"/>
@ -87,7 +87,7 @@ Then I cleaned up the author authorities and HTML characters in OpenRefine and s
"url": "https://alanorth.github.io/cgspace-notes/2017-08/",
"wordCount": "3542",
"datePublished": "2017-08-01T11:51:52&#43;03:00",
"dateModified": "2017-09-10T19:18:52&#43;03:00",
"dateModified": "2017-08-01T11:51:52&#43;03:00",
"author": {
"@type": "Person",
"name": "Alan Orth"
@ -123,6 +123,9 @@ Then I cleaned up the author authorities and HTML characters in OpenRefine and s
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -25,7 +25,7 @@ Ask Sisay to clean up the WLE approvers a bit, as Marianne&rsquo;s user account
<meta property="article:published_time" content="2017-09-07T16:54:52&#43;07:00"/>
<meta property="article:modified_time" content="2017-09-18T11:28:11&#43;03:00"/>
<meta property="article:modified_time" content="2017-09-07T16:54:52&#43;07:00"/>
@ -63,7 +63,7 @@ Ask Sisay to clean up the WLE approvers a bit, as Marianne&rsquo;s user account
"url": "https://alanorth.github.io/cgspace-notes/2017-09/",
"wordCount": "2723",
"datePublished": "2017-09-07T16:54:52&#43;07:00",
"dateModified": "2017-09-18T11:28:11&#43;03:00",
"dateModified": "2017-09-07T16:54:52&#43;07:00",
"author": {
"@type": "Person",
"name": "Alan Orth"
@ -99,6 +99,9 @@ Ask Sisay to clean up the WLE approvers a bit, as Marianne&rsquo;s user account
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -10,5 +10,14 @@
<atom:link href="https://alanorth.github.io/cgspace-notes/categories/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Notes</title>
<link>https://alanorth.github.io/cgspace-notes/categories/notes/</link>
<pubDate>Mon, 18 Sep 2017 16:38:35 +0300</pubDate>
<guid>https://alanorth.github.io/cgspace-notes/categories/notes/</guid>
<description></description>
</item>
</channel>
</rss>

View File

@ -0,0 +1,164 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta property="og:title" content="Notes" />
<meta property="og:description" content="Documenting day-to-day work on the [CGSpace](https://cgspace.cgiar.org) repository." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://alanorth.github.io/cgspace-notes/categories/notes/" />
<meta property="og:updated_time" content="2017-09-18T16:38:35&#43;03:00"/>
<meta name="twitter:card" content="summary"/><meta name="twitter:title" content="Notes"/>
<meta name="twitter:description" content="Documenting day-to-day work on the [CGSpace](https://cgspace.cgiar.org) repository."/>
<meta name="generator" content="Hugo 0.27.1" />
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Blog",
"headline": "CGSpace Notes",
"url" : "https://alanorth.github.io/cgspace-notes/categories/notes/",
"author": {
"@type": "Person",
"name": "Alan Orth"
},
"dateModified": "2017-09-18T16:38:35&#43;03:00",
"keywords": "notes,notes,",
"description": "Documenting day-to-day work on the [CGSpace](https://cgspace.cgiar.org) repository."
}
</script>
<link rel="canonical" href="https://alanorth.github.io/cgspace-notes/categories/notes/">
<title>CGSpace Notes</title>
<!-- combined, minified CSS -->
<link href="https://alanorth.github.io/cgspace-notes/css/style.css" rel="stylesheet" integrity="sha384-zYRhIy0/Yl1e5lW9cimY1AugfdkHChXyCbs2NKFaLTgeQjVfj/CMPIUdjXm/JPWV" crossorigin="anonymous">
<!-- RSS 2.0 feed -->
<link href="https://alanorth.github.io/cgspace-notes/categories/notes/index.xml" rel="alternate" type="application/rss+xml" title="CGSpace Notes" />
</head>
<body>
<div class="blog-masthead">
<div class="container">
<nav class="nav blog-nav">
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>
<header class="blog-header">
<div class="container">
<h1 class="blog-title"><a href="https://alanorth.github.io/cgspace-notes/" rel="home">CGSpace Notes</a></h1>
<p class="lead blog-description">Documenting day-to-day work on the <a href="https://cgspace.cgiar.org">CGSpace</a> repository.</p>
</div>
</header>
<div class="container">
<div class="row">
<div class="col-sm-8 blog-main">
</div> <!-- /.blog-main -->
<aside class="col-sm-3 ml-auto blog-sidebar">
<section class="sidebar-module">
<h4>Recent Posts</h4>
<ol class="list-unstyled">
<li><a href="/cgspace-notes/2017-09/">September, 2017</a></li>
<li><a href="/cgspace-notes/2017-08/">August, 2017</a></li>
<li><a href="/cgspace-notes/2017-07/">July, 2017</a></li>
<li><a href="/cgspace-notes/2017-06/">June, 2017</a></li>
<li><a href="/cgspace-notes/2017-05/">May, 2017</a></li>
</ol>
</section>
<section class="sidebar-module">
<h4>Links</h4>
<ol class="list-unstyled">
<li><a href="https://cgspace.cgiar.org">CGSpace</a></li>
<li><a href="https://dspacetest.cgiar.org">DSpace Test</a></li>
<li><a href="https://github.com/ilri/DSpace">CGSpace @ GitHub</a></li>
</ol>
</section>
</aside>
</div> <!-- /.row -->
</div> <!-- /.container -->
<footer class="blog-footer">
<p>
Blog template created by <a href="https://twitter.com/mdo">@mdo</a>, ported to Hugo by <a href='https://twitter.com/mralanorth'>@mralanorth</a>.
</p>
<p>
<a href="#">Back to top</a>
</p>
</footer>
</body>
</html>

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Notes on CGSpace Notes</title>
<link>https://alanorth.github.io/cgspace-notes/categories/notes/</link>
<description>Recent content in Notes on CGSpace Notes</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<lastBuildDate>Mon, 18 Sep 2017 16:38:35 +0300</lastBuildDate>
<atom:link href="https://alanorth.github.io/cgspace-notes/categories/notes/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>CGIAR Library Migration</title>
<link>https://alanorth.github.io/cgspace-notes/cgiar-library-migration/</link>
<pubDate>Mon, 18 Sep 2017 16:38:35 +0300</pubDate>
<guid>https://alanorth.github.io/cgspace-notes/cgiar-library-migration/</guid>
<description>Temporarily making this a page because it seems Hugo (currently 0.27.1) cannot use a custom slug for a post when there is a permalink defined in config.toml
Rough notes for importing the CGIAR Library content. It was decided that this content would go to a new top-level community called CGIAR System Organization.
Pre-migration Technical TODOs Things that need to happen before the migration:
Create top-level community on CGSpace to hold the CGIAR Library content: 10568&amp;frasl;83389 Update nginx redirects in ansible templates Update handle in DSpace XMLUI config Set up nginx redirects for URLs like: https://library.</description>
</item>
</channel>
</rss>

View File

@ -0,0 +1 @@
<!DOCTYPE html><html><head><title>https://alanorth.github.io/cgspace-notes/categories/notes/</title><link rel="canonical" href="https://alanorth.github.io/cgspace-notes/categories/notes/"/><meta name="robots" content="noindex"><meta http-equiv="content-type" content="text/html; charset=utf-8" /><meta http-equiv="refresh" content="0; url=https://alanorth.github.io/cgspace-notes/categories/notes/" /></head></html>

View File

@ -0,0 +1,360 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta property="og:title" content="CGIAR Library Migration" />
<meta property="og:description" content="Notes on the migration of the CGIAR Library to CGSpace" />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/" />
<meta property="article:published_time" content="2017-09-18T16:38:35&#43;03:00"/>
<meta property="article:modified_time" content="2017-09-18T16:38:35&#43;03:00"/>
<meta name="twitter:card" content="summary"/><meta name="twitter:title" content="CGIAR Library Migration"/>
<meta name="twitter:description" content="Notes on the migration of the CGIAR Library to CGSpace"/>
<meta name="generator" content="Hugo 0.27.1" />
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "BlogPosting",
"headline": "CGIAR Library Migration",
"url": "https://alanorth.github.io/cgspace-notes/cgiar-library-migration/",
"wordCount": "1175",
"datePublished": "2017-09-18T16:38:35&#43;03:00",
"dateModified": "2017-09-18T16:38:35&#43;03:00",
"author": {
"@type": "Person",
"name": "Alan Orth"
},
"keywords": "Notes",
"description": "Notes on the migration of the CGIAR Library to CGSpace"
}
</script>
<link rel="canonical" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">
<title>CGIAR Library Migration | CGSpace Notes</title>
<!-- combined, minified CSS -->
<link href="https://alanorth.github.io/cgspace-notes/css/style.css" rel="stylesheet" integrity="sha384-zYRhIy0/Yl1e5lW9cimY1AugfdkHChXyCbs2NKFaLTgeQjVfj/CMPIUdjXm/JPWV" crossorigin="anonymous">
</head>
<body>
<div class="blog-masthead">
<div class="container">
<nav class="nav blog-nav">
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link active" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>
<header class="blog-header">
<div class="container">
<h1 class="blog-title"><a href="https://alanorth.github.io/cgspace-notes/" rel="home">CGSpace Notes</a></h1>
<p class="lead blog-description">Documenting day-to-day work on the <a href="https://cgspace.cgiar.org">CGSpace</a> repository.</p>
</div>
</header>
<div class="container">
<div class="row">
<div class="col-sm-8 blog-main">
<article class="blog-post">
<header>
<h2 class="blog-post-title"><a href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a></h2>
<p class="blog-post-meta"><time datetime="2017-09-18T16:38:35&#43;03:00">Mon Sep 18, 2017</time> by Alan Orth in
<i class="fa fa-folder" aria-hidden="true"></i>&nbsp;<a href="/cgspace-notes/categories/notes" rel="category tag">Notes</a>
</p>
</header>
<p><em>Temporarily making this a page because it seems Hugo (currently 0.27.1) cannot use a custom slug for a post when there is a permalink defined in <code>config.toml</code></em></p>
<p>Rough notes for importing the CGIAR Library content. It was decided that this content would go to a new top-level community called <em>CGIAR System Organization</em>.</p>
<h2 id="pre-migration-technical-todos">Pre-migration Technical TODOs</h2>
<p>Things that need to happen before the migration:</p>
<ul class="task-list">
<li><label><input type="checkbox" checked disabled class="task-list-item"> Create top-level community on CGSpace to hold the CGIAR Library content: <sup>10568</sup>&frasl;<sub>83389</sub>
<ul class="task-list">
<li><label><input type="checkbox" checked disabled class="task-list-item"> Update nginx redirects in ansible templates</label></li>
<li><label><input type="checkbox" checked disabled class="task-list-item"> Update handle in DSpace XMLUI config</label></li>
</ul></label></li>
<li>Set up nginx redirects for URLs like:
<ul class="task-list">
<li><label><input type="checkbox" checked disabled class="task-list-item"> <a href="https://library.cgiar.org/bitstream/handle/10947/2699/CGIAR_Branding_Guidelines_and_Toolkit.pdf">https://library.cgiar.org/bitstream/handle/10947/2699/CGIAR_Branding_Guidelines_and_Toolkit.pdf</a></label></li>
<li><label><input type="checkbox" checked disabled class="task-list-item"> <a href="https://library.cgiar.org/handle/10947/4258">https://library.cgiar.org/handle/10947/4258</a></label></li>
</ul></li>
<li><label><input type="checkbox" disabled class="task-list-item"> Merge <a href="https://github.com/ilri/DSpace/pull/339">#339</a> to <code>5_x-prod</code> branch and rebuild DSpace</label></li>
<li><label><input type="checkbox" checked disabled class="task-list-item"> Increase <code>max_connections</code> in <code>/etc/postgresql/9.5/main/postgresql.conf</code> by ~10
<ul>
<li><code>SELECT * FROM pg_stat_activity;</code> seems to show ~6 extra connections used by the command line tools during import</li>
</ul></label></li>
<li><label><input type="checkbox" checked disabled class="task-list-item"> Temporarily disable nightly <code>index-discovery</code> cron job because the import process will be taking place during some of this time and I don&rsquo;t want them to be competing to update the Solr index</label></li>
</ul>
<h2 id="migration">Migration</h2>
<p>Process for the actual migration:</p>
<ul class="task-list">
<li>Export all top-level communities and collections from DSpace Test:
<code>console
$ export PATH=$PATH:/home/dspacetest.cgiar.org/bin
$ dspace packager -d -a -t AIP -e aorth@mjanja.ch -i 10947/2515 10947-2515/10947-2515.zip
$ dspace packager -d -a -t AIP -e aorth@mjanja.ch -i 10947/2516 10947-2516/10947-2516.zip
$ dspace packager -d -a -t AIP -e aorth@mjanja.ch -i 10947/2517 10947-2517/10947-2517.zip
$ dspace packager -d -a -t AIP -e aorth@mjanja.ch -i 10947/2518 10947-2518/10947-2518.zip
$ dspace packager -d -a -t AIP -e aorth@mjanja.ch -i 10947/2519 10947-2519/10947-2519.zip
$ dspace packager -d -a -t AIP -e aorth@mjanja.ch -i 10947/2708 10947-2708/10947-2708.zip
$ dspace packager -d -a -t AIP -e aorth@mjanja.ch -i 10947/2526 10947-2526/10947-2526.zip
$ dspace packager -d -a -t AIP -e aorth@mjanja.ch -i 10947/2871 10947-2871/10947-2871.zip
$ dspace packager -d -a -t AIP -e aorth@mjanja.ch -i 10947/2527 10947-2527/10947-2527.zip
$ dspace packager -d -a -t AIP -e aorth@mjanja.ch -i 10568/93759 10568-93759/10568-93759.zip
$ dspace packager -d -a -t AIP -e aorth@mjanja.ch -i 10568/93760 10568-93760/10568-93760.zip
$ dspace packager -d -a -t AIP -e aorth@mjanja.ch -i 10947/1 10947-1/10947-1.zip
</code></li>
<li>Import to CGSpace (also see <a href="http://alanorth.github.io/cgspace-notes/2017-05/#2017-05-10">notes from 2017-05-10</a>)
<ul class="task-list">
<li><label><input type="checkbox" checked disabled class="task-list-item"> Copy all exports from DSpace Test</label></li>
<li><label><input type="checkbox" checked disabled class="task-list-item"> Add ingestion overrides to <code>dspace.cfg</code> before import:
<code>
mets.dspaceAIP.ingest.crosswalk.METSRIGHTS = NIL
mets.dspaceAIP.ingest.crosswalk.DSPACE-ROLES = NIL
</code></label></li>
<li><label><input type="checkbox" checked disabled class="task-list-item"> Import communities and collections, paying attention to options to skip missing parents and ignore handles:
<code>console
$ export JAVA_OPTS=&quot;-Dfile.encoding=UTF-8 -Xmx3072m -XX:-UseGCOverheadLimit -XX:+TieredCompilation -XX:TieredStopAtLevel=1&quot;
$ export PATH=$PATH:/home/cgspace.cgiar.org/bin
$ dspace packager -r -u -a -t AIP -o skipIfParentMissing=true -e aorth@mjanja.ch -p 10568/83389 10947-2515/10947-2515.zip
$ dspace packager -r -u -a -t AIP -o skipIfParentMissing=true -e aorth@mjanja.ch -p 10568/83389 10947-2516/10947-2516.zip
$ dspace packager -r -u -a -t AIP -o skipIfParentMissing=true -e aorth@mjanja.ch -p 10568/83389 10947-2517/10947-2517.zip
$ dspace packager -r -u -a -t AIP -o skipIfParentMissing=true -e aorth@mjanja.ch -p 10568/83389 10947-2518/10947-2518.zip
$ dspace packager -r -u -a -t AIP -o skipIfParentMissing=true -e aorth@mjanja.ch -p 10568/83389 10947-2519/10947-2519.zip
$ dspace packager -r -u -a -t AIP -o skipIfParentMissing=true -e aorth@mjanja.ch -p 10568/83389 10947-2708/10947-2708.zip
$ dspace packager -r -u -a -t AIP -o skipIfParentMissing=true -e aorth@mjanja.ch -p 10568/83389 10947-2526/10947-2526.zip
$ dspace packager -r -u -a -t AIP -o skipIfParentMissing=true -e aorth@mjanja.ch -p 10568/83389 10947-2871/10947-2871.zip
$ dspace packager -r -u -a -t AIP -o skipIfParentMissing=true -e aorth@mjanja.ch -p 10568/83389 10947-4467/10947-4467.zip
$ dspace packager -s -u -t AIP -o ignoreHandle=false -e aorth@mjanja.ch -p 10568/83389 10947-2527/10947-2527.zip
$ for item in 10947-2527/ITEM@10947-*; do dspace packager -r -f -u -t AIP -e aorth@mjanja.ch $item; done
$ dspace packager -s -t AIP -o ignoreHandle=false -e aorth@mjanja.ch -p 10568/83389 10947-1/10947-1.zip
$ for collection in 10947-1/COLLECTION@10947-*; do dspace packager -s -o ignoreHandle=false -t AIP -e aorth@mjanja.ch -p 10947/1 $collection; done
$ for item in 10947-1/ITEM@10947-*; do dspace packager -r -f -u -t AIP -e aorth@mjanja.ch $item; done
</code></label></li>
<li>This submits AIP hierarchies recursively (-r) and suppresses errors when an item&rsquo;s parent collection hasn&rsquo;t been created yet—for example, if the item is mapped</li>
<li>The large historic archive (<sup>10947</sup>&frasl;<sub>1</sub>) is created in several steps because it requires a lot of memory and often crashes</li>
</ul></li>
<li><p>Create new subcommunities and collections for content we reorganized into new hierarchies from the original:</p>
<ul class="task-list">
<li><label><input type="checkbox" checked disabled class="task-list-item"> Create <em>CGIAR System Management Board</em> sub-community: <sup>10568</sup>&frasl;<sub>83536</sub></label></li>
<li><label><input type="checkbox" checked disabled class="task-list-item"> Content from <em>CGIAR System Management Board documents</em> collection (<sup>10947</sup>&frasl;<sub>4561</sub>) goes here</label></li>
<li>Import collection hierarchy first and then the items:
<code>
$ dspace packager -r -t AIP -o ignoreHandle=false -e aorth@mjanja.ch -p 10568/83536 10568-93760/COLLECTION@10947-4651.zip
$ for item in 10568-93760/ITEM@10947-465*; do dspace packager -r -f -u -t AIP -e aorth@mjanja.ch $item; done
</code></li>
<li><label><input type="checkbox" checked disabled class="task-list-item"> Create <em>CGIAR System Management Office</em> sub-community: <sup>10568</sup>&frasl;<sub>83537</sub></label></li>
<li><label><input type="checkbox" checked disabled class="task-list-item"> Create <em>CGIAR System Management Office documents</em> collection: <sup>10568</sup>&frasl;<sub>83538</sub></label></li>
<li>Import items to collection individually in replace mode (-r) while explicitly preserving handles and ignoring parents:
<code>
$ for item in 10568-93759/ITEM@10947-46*; do dspace packager -r -t AIP -o ignoreHandle=false -o ignoreParent=true -e aorth@mjanja.ch -p 10568/83538 $item; done
</code></li>
<li>Get the handles for the last few items from CGIAR Library that were created since we did the migration to DSpace Test in May:
<code>
dspace=# select handle from item, handle where handle.resource_id = item.item_id AND item.item_id in (select item_id from metadatavalue where metadata_field_id=11 and date(text_value) &gt; '2017-05-01T00:00:00Z');
</code></li>
<li><p>Export them from the CGIAR Library:</p>
<pre><code># for handle in 10947/4658 10947/4659 10947/4660 10947/4661 10947/4665 10947/4664 10947/4666 10947/4669; do /usr/local/dspace/bin/dspace packager -d -a -t AIP -e m.marus@cgiar.org -i $handle ${handle}.zip; done
</code></pre></li>
<li><p>Import on CGSpace:</p>
<pre><code>$ for item in 10947-latest/*.zip; do dspace packager -r -u -t AIP -e aorth@mjanja.ch $item; done
</code></pre></li>
<li><p>[ ] Shut down Tomcat and run <code>update-sequences.sql</code> as the system&rsquo;s <code>postgres</code> user</p></li>
</ul></li>
</ul>
<h2 id="post-migration">Post Migration</h2>
<ul class="task-list">
<li><label><input type="checkbox" checked disabled class="task-list-item"> Remove ingestion overrides from <code>dspace.cfg</code></label></li>
<li><label><input type="checkbox" disabled class="task-list-item"> Reset PostgreSQL <code>max_connections</code> to 183</label></li>
<li><label><input type="checkbox" checked disabled class="task-list-item"> Enable nightly <code>index-discovery</code> cron job</label></li>
<li>HTTPS certificates:
<ul class="task-list">
<li><label><input type="checkbox" checked disabled class="task-list-item"> Install current certificates from their Tomcat keystore
<code>console
$ keytool -list -keystore tomcat.keystore
$ keytool -importkeystore -srckeystore tomcat.keystore -destkeystore library.cgiar.org.p12 -deststoretype PKCS12 -srcalias tomcat
$ openssl pkcs12 -in library.cgiar.org.p12 -nokeys -out library.cgiar.org.crt.pem
$ openssl pkcs12 -in library.cgiar.org.p12 -nodes -nocerts -out library.cgiar.org.key.pem
$ wget https://certs.godaddy.com/repository/gdroot-g2.crt https://certs.godaddy.com/repository/gdig2.crt.pem
$ cat library.cgiar.org.crt.pem gdig2.crt.pem &gt; library.cgiar.org-chained.pem
</code></label></li>
</ul></li>
<li><label><input type="checkbox" disabled class="task-list-item"> Update DNS records:
<ul>
<li>CNAME: cgspace.cgiar.org</li>
</ul></label></li>
<li><label><input type="checkbox" disabled class="task-list-item"> Re-deploy DSpace from freshly built <code>5_x-prod</code> branch</label></li>
<li><label><input type="checkbox" disabled class="task-list-item"> Run system updates and reboot server</label></li>
<li><label><input type="checkbox" disabled class="task-list-item"> Switch to Let&rsquo;s Encrypt HTTPS certificates (after DNS is updated and server isn&rsquo;t busy)
<code>console
$ sudo systemctl stop tomcat7
$ ./letsencrypt-auto certonly --standalone -d library.cgiar.org
</code></label></li>
<li><label><input type="checkbox" disabled class="task-list-item"> Merge <code>cgiar-library</code> branch to <code>master</code> and re-run ansible nginx templates</label></li>
</ul>
<h2 id="troubleshooting">Troubleshooting</h2>
<h3 id="foreign-key-error-in-dspace-cleanup">Foreign Key Error in <code>dspace cleanup</code></h3>
<p>The cleanup script is sometimes used during import processes to clean the database and assetstore after failed AIP imports. If you see the following error with <code>dspace cleanup -v</code>:</p>
<pre><code>Error: ERROR: update or delete on table &quot;bitstream&quot; violates foreign key constraint &quot;bundle_primary_bitstream_id_fkey&quot; on table &quot;bundle&quot;
Detail: Key (bitstream_id)=(119841) is still referenced from table &quot;bundle&quot;.
</code></pre>
<p>The solution is to set the <code>primary_bitstream_id</code> to NULL in PostgreSQL:</p>
<pre><code>dspace=# update bundle set primary_bitstream_id=NULL where primary_bitstream_id in (119841);
</code></pre>
<h3 id="psqlexception-during-aip-ingest">PSQLException During AIP Ingest</h3>
<p>After a few rounds of ingesting—possibly with failures—you might end up with inconsistent IDs in the database. In this case, during AIP ingest of a single collection in submit mode (-s):</p>
<pre><code>org.dspace.content.packager.PackageValidationException: Exception while ingesting 10947-2527/10947-2527.zip, Reason: org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint &quot;handle_pkey&quot;
Detail: Key (handle_id)=(86227) already exists.
</code></pre>
<p>The normal solution is to run the <code>update-sequences.sql</code> script (with Tomcat shut down) but it doesn&rsquo;t seem to work in this case. Finding the maximum <code>handle_id</code> and manually updating the sequence seems to work:</p>
<pre><code>dspace=# select * from handle where handle_id=(select max(handle_id) from handle);
dspace=# select setval('handle_seq',86873);
</code></pre>
</article>
</div> <!-- /.blog-main -->
<aside class="col-sm-3 ml-auto blog-sidebar">
<section class="sidebar-module">
<h4>Recent Posts</h4>
<ol class="list-unstyled">
<li><a href="/cgspace-notes/2017-09/">September, 2017</a></li>
<li><a href="/cgspace-notes/2017-08/">August, 2017</a></li>
<li><a href="/cgspace-notes/2017-07/">July, 2017</a></li>
<li><a href="/cgspace-notes/2017-06/">June, 2017</a></li>
<li><a href="/cgspace-notes/2017-05/">May, 2017</a></li>
</ol>
</section>
<section class="sidebar-module">
<h4>Links</h4>
<ol class="list-unstyled">
<li><a href="https://cgspace.cgiar.org">CGSpace</a></li>
<li><a href="https://dspacetest.cgiar.org">DSpace Test</a></li>
<li><a href="https://github.com/ilri/DSpace">CGSpace @ GitHub</a></li>
</ol>
</section>
</aside>
</div> <!-- /.row -->
</div> <!-- /.container -->
<footer class="blog-footer">
<p>
Blog template created by <a href="https://twitter.com/mdo">@mdo</a>, ported to Hugo by <a href='https://twitter.com/mralanorth'>@mralanorth</a>.
</p>
<p>
<a href="#">Back to top</a>
</p>
</footer>
</body>
</html>

View File

@ -12,7 +12,7 @@
<meta property="og:updated_time" content="2017-09-07T16:54:52&#43;07:00"/>
<meta property="og:updated_time" content="2017-09-18T16:38:35&#43;03:00"/>
@ -39,8 +39,8 @@
"@type": "Person",
"name": "Alan Orth"
},
"dateModified": "2017-09-07T16:54:52&#43;07:00",
"keywords": "notes,",
"dateModified": "2017-09-18T16:38:35&#43;03:00",
"keywords": "notes,notes,",
"description": "Documenting day-to-day work on the [CGSpace](https://cgspace.cgiar.org) repository."
}
</script>
@ -74,6 +74,9 @@
<a class="nav-link active" href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -6,11 +6,23 @@
<description>Recent content on CGSpace Notes</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<lastBuildDate>Thu, 07 Sep 2017 16:54:52 +0700</lastBuildDate>
<lastBuildDate>Mon, 18 Sep 2017 16:38:35 +0300</lastBuildDate>
<atom:link href="https://alanorth.github.io/cgspace-notes/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>CGIAR Library Migration</title>
<link>https://alanorth.github.io/cgspace-notes/cgiar-library-migration/</link>
<pubDate>Mon, 18 Sep 2017 16:38:35 +0300</pubDate>
<guid>https://alanorth.github.io/cgspace-notes/cgiar-library-migration/</guid>
<description>Temporarily making this a page because it seems Hugo (currently 0.27.1) cannot use a custom slug for a post when there is a permalink defined in config.toml
Rough notes for importing the CGIAR Library content. It was decided that this content would go to a new top-level community called CGIAR System Organization.
Pre-migration Technical TODOs Things that need to happen before the migration:
Create top-level community on CGSpace to hold the CGIAR Library content: 10568&amp;frasl;83389 Update nginx redirects in ansible templates Update handle in DSpace XMLUI config Set up nginx redirects for URLs like: https://library.</description>
</item>
<item>
<title>September, 2017</title>
<link>https://alanorth.github.io/cgspace-notes/2017-09/</link>

View File

@ -40,7 +40,7 @@
"name": "Alan Orth"
},
"dateModified": "2016-11-01T09:21:00&#43;03:00",
"keywords": "notes,",
"keywords": "notes,notes,",
"description": "Documenting day-to-day work on the [CGSpace](https://cgspace.cgiar.org) repository."
}
</script>
@ -74,6 +74,9 @@
<a class="nav-link active" href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -40,7 +40,7 @@
"name": "Alan Orth"
},
"dateModified": "2016-01-13T13:18:00&#43;03:00",
"keywords": "notes,",
"keywords": "notes,notes,",
"description": "Documenting day-to-day work on the [CGSpace](https://cgspace.cgiar.org) repository."
}
</script>
@ -74,6 +74,9 @@
<a class="nav-link active" href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -40,7 +40,7 @@
"name": "Alan Orth"
},
"dateModified": "2017-09-07T16:54:52&#43;07:00",
"keywords": "notes,",
"keywords": "notes,notes,",
"description": "Documenting day-to-day work on the [CGSpace](https://cgspace.cgiar.org) repository."
}
</script>
@ -74,6 +74,9 @@
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -40,7 +40,7 @@
"name": "Alan Orth"
},
"dateModified": "2016-11-01T09:21:00&#43;03:00",
"keywords": "notes,",
"keywords": "notes,notes,",
"description": "Documenting day-to-day work on the [CGSpace](https://cgspace.cgiar.org) repository."
}
</script>
@ -74,6 +74,9 @@
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -40,7 +40,7 @@
"name": "Alan Orth"
},
"dateModified": "2016-01-13T13:18:00&#43;03:00",
"keywords": "notes,",
"keywords": "notes,notes,",
"description": "Documenting day-to-day work on the [CGSpace](https://cgspace.cgiar.org) repository."
}
</script>
@ -74,6 +74,9 @@
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -1,6 +1,7 @@
User-agent: *
Disallow: /cgspace-notes/cgiar-library-migration/
Disallow: /cgspace-notes/2017-09/
Disallow: /cgspace-notes/2017-08/
Disallow: /cgspace-notes/2017-07/
@ -27,5 +28,6 @@ Disallow: /cgspace-notes/2015-11/
Disallow: /cgspace-notes/
Disallow: /cgspace-notes/categories/
Disallow: /cgspace-notes/tags/notes/
Disallow: /cgspace-notes/categories/notes/
Disallow: /cgspace-notes/post/
Disallow: /cgspace-notes/tags/

View File

@ -2,124 +2,129 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://alanorth.github.io/cgspace-notes/cgiar-library-migration/</loc>
<lastmod>2017-09-18T16:38:35+03:00</lastmod>
</url>
<url>
<loc>https://alanorth.github.io/cgspace-notes/2017-09/</loc>
<lastmod>2017-09-18T11:28:11+03:00</lastmod>
<lastmod>2017-09-07T16:54:52+07:00</lastmod>
</url>
<url>
<loc>https://alanorth.github.io/cgspace-notes/2017-08/</loc>
<lastmod>2017-09-10T19:18:52+03:00</lastmod>
<lastmod>2017-08-01T11:51:52+03:00</lastmod>
</url>
<url>
<loc>https://alanorth.github.io/cgspace-notes/2017-07/</loc>
<lastmod>2017-08-01T08:55:37+03:00</lastmod>
<lastmod>2017-07-01T18:03:52+03:00</lastmod>
</url>
<url>
<loc>https://alanorth.github.io/cgspace-notes/2017-06/</loc>
<lastmod>2017-06-30T18:34:51+03:00</lastmod>
<lastmod>2017-06-01T10:14:52+03:00</lastmod>
</url>
<url>
<loc>https://alanorth.github.io/cgspace-notes/2017-05/</loc>
<lastmod>2017-09-10T17:46:54+03:00</lastmod>
<lastmod>2017-05-01T16:21:52+02:00</lastmod>
</url>
<url>
<loc>https://alanorth.github.io/cgspace-notes/2017-04/</loc>
<lastmod>2017-04-26T13:35:10+03:00</lastmod>
<lastmod>2017-04-02T17:08:52+02:00</lastmod>
</url>
<url>
<loc>https://alanorth.github.io/cgspace-notes/2017-03/</loc>
<lastmod>2017-03-31T05:36:10+03:00</lastmod>
<lastmod>2017-03-01T17:08:52+02:00</lastmod>
</url>
<url>
<loc>https://alanorth.github.io/cgspace-notes/2017-02/</loc>
<lastmod>2017-02-28T22:58:29+02:00</lastmod>
<lastmod>2017-02-07T07:04:52-08:00</lastmod>
</url>
<url>
<loc>https://alanorth.github.io/cgspace-notes/2017-01/</loc>
<lastmod>2017-01-29T13:18:32+02:00</lastmod>
<lastmod>2017-01-02T10:43:00+03:00</lastmod>
</url>
<url>
<loc>https://alanorth.github.io/cgspace-notes/2016-12/</loc>
<lastmod>2017-01-10T16:21:47+02:00</lastmod>
<lastmod>2016-12-02T10:43:00+03:00</lastmod>
</url>
<url>
<loc>https://alanorth.github.io/cgspace-notes/2016-11/</loc>
<lastmod>2017-01-10T16:21:47+02:00</lastmod>
<lastmod>2016-11-01T09:21:00+03:00</lastmod>
</url>
<url>
<loc>https://alanorth.github.io/cgspace-notes/2016-10/</loc>
<lastmod>2017-01-10T16:21:47+02:00</lastmod>
<lastmod>2016-10-03T15:53:00+03:00</lastmod>
</url>
<url>
<loc>https://alanorth.github.io/cgspace-notes/2016-09/</loc>
<lastmod>2017-01-09T16:18:07+02:00</lastmod>
<lastmod>2016-09-01T15:53:00+03:00</lastmod>
</url>
<url>
<loc>https://alanorth.github.io/cgspace-notes/2016-08/</loc>
<lastmod>2017-01-09T16:18:07+02:00</lastmod>
<lastmod>2016-08-01T15:53:00+03:00</lastmod>
</url>
<url>
<loc>https://alanorth.github.io/cgspace-notes/2016-07/</loc>
<lastmod>2017-01-09T16:18:07+02:00</lastmod>
<lastmod>2016-07-01T10:53:00+03:00</lastmod>
</url>
<url>
<loc>https://alanorth.github.io/cgspace-notes/2016-06/</loc>
<lastmod>2017-01-09T16:18:07+02:00</lastmod>
<lastmod>2016-06-01T10:53:00+03:00</lastmod>
</url>
<url>
<loc>https://alanorth.github.io/cgspace-notes/2016-05/</loc>
<lastmod>2017-01-09T16:18:07+02:00</lastmod>
<lastmod>2016-05-01T23:06:00+03:00</lastmod>
</url>
<url>
<loc>https://alanorth.github.io/cgspace-notes/2016-04/</loc>
<lastmod>2016-09-28T17:02:30+03:00</lastmod>
<lastmod>2016-04-04T11:06:00+03:00</lastmod>
</url>
<url>
<loc>https://alanorth.github.io/cgspace-notes/2016-03/</loc>
<lastmod>2017-01-09T16:18:07+02:00</lastmod>
<lastmod>2016-03-02T16:50:00+03:00</lastmod>
</url>
<url>
<loc>https://alanorth.github.io/cgspace-notes/2016-02/</loc>
<lastmod>2017-01-09T16:18:07+02:00</lastmod>
<lastmod>2016-02-05T13:18:00+03:00</lastmod>
</url>
<url>
<loc>https://alanorth.github.io/cgspace-notes/2016-01/</loc>
<lastmod>2017-01-09T16:18:07+02:00</lastmod>
<lastmod>2016-01-13T13:18:00+03:00</lastmod>
</url>
<url>
<loc>https://alanorth.github.io/cgspace-notes/2015-12/</loc>
<lastmod>2017-01-09T16:18:07+02:00</lastmod>
<lastmod>2015-12-02T13:18:00+03:00</lastmod>
</url>
<url>
<loc>https://alanorth.github.io/cgspace-notes/2015-11/</loc>
<lastmod>2016-09-28T17:02:30+03:00</lastmod>
<lastmod>2015-11-23T17:00:57+03:00</lastmod>
</url>
<url>
<loc>https://alanorth.github.io/cgspace-notes/</loc>
<lastmod>2017-09-18T11:28:11+03:00</lastmod>
<lastmod>2017-09-18T16:38:35+03:00</lastmod>
<priority>0</priority>
</url>
@ -130,19 +135,25 @@
<url>
<loc>https://alanorth.github.io/cgspace-notes/tags/notes/</loc>
<lastmod>2017-09-18T11:28:11+03:00</lastmod>
<lastmod>2017-09-07T16:54:52+07:00</lastmod>
<priority>0</priority>
</url>
<url>
<loc>https://alanorth.github.io/cgspace-notes/categories/notes/</loc>
<lastmod>2017-09-18T16:38:35+03:00</lastmod>
<priority>0</priority>
</url>
<url>
<loc>https://alanorth.github.io/cgspace-notes/post/</loc>
<lastmod>2017-09-18T11:28:11+03:00</lastmod>
<lastmod>2017-09-07T16:54:52+07:00</lastmod>
<priority>0</priority>
</url>
<url>
<loc>https://alanorth.github.io/cgspace-notes/tags/</loc>
<lastmod>2017-09-18T11:28:11+03:00</lastmod>
<lastmod>2017-09-07T16:54:52+07:00</lastmod>
<priority>0</priority>
</url>

View File

@ -40,7 +40,7 @@
"name": "Alan Orth"
},
"dateModified": "2017-09-07T16:54:52&#43;07:00",
"keywords": "notes,",
"keywords": "notes,notes,",
"description": "Documenting day-to-day work on the [CGSpace](https://cgspace.cgiar.org) repository."
}
</script>
@ -74,6 +74,9 @@
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -40,7 +40,7 @@
"name": "Alan Orth"
},
"dateModified": "2016-11-01T09:21:00&#43;03:00",
"keywords": "notes,",
"keywords": "notes,notes,",
"description": "Documenting day-to-day work on the [CGSpace](https://cgspace.cgiar.org) repository."
}
</script>
@ -74,6 +74,9 @@
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>

View File

@ -40,7 +40,7 @@
"name": "Alan Orth"
},
"dateModified": "2016-01-13T13:18:00&#43;03:00",
"keywords": "notes,",
"keywords": "notes,notes,",
"description": "Documenting day-to-day work on the [CGSpace](https://cgspace.cgiar.org) repository."
}
</script>
@ -74,6 +74,9 @@
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
<a class="nav-link" href="https://alanorth.github.io/cgspace-notes/cgiar-library-migration/">CGIAR Library Migration</a>
</nav>
</div>
</div>