diff --git a/content/posts/2018-09.md b/content/posts/2018-09.md index 208128280..202e86d7b 100644 --- a/content/posts/2018-09.md +++ b/content/posts/2018-09.md @@ -434,5 +434,30 @@ sqlite> INSERT INTO items(id, views) VALUES(0, 7) ON CONFLICT(id) DO UPDATE SET - But when I deployed it on my Ubuntu 16.04 environment I realized Ubuntu's SQLite is old and doesn't support `UPSERT`, so my indexing doesn't work... - Apparently `UPSERT` came in SQLite 3.24.0 (2018-06-04), and Ubuntu 16.04 has 3.11.0 - Ok this is hilarious, I manually downloaded the [libsqlite3 3.24.0 deb from Ubuntu 18.10 "cosmic"](https://packages.ubuntu.com/cosmic/libsqlite3-0) and installed it in Ubnutu 16.04 and now the Python `indexer.py` works +- This is definitely a dirty hack, but the list of packages we use that depend on `libsqlite3-0` in Ubuntu 16.04 are actually pretty few: + +``` +# apt-cache rdepends --installed libsqlite3-0 | sort | uniq + gnupg2 + libkrb5-26-heimdal + libnss3 + libpython2.7-stdlib + libpython3.5-stdlib +``` + +- I wonder if I could work around this by detecting the SQLite library version, for example on Ubuntu 16.04 after I replaced the library: + +``` +# python3 +Python 3.5.2 (default, Nov 23 2017, 16:37:01) +[GCC 5.4.0 20160609] on linux +Type "help", "copyright", "credits" or "license" for more information. +>>> import sqlite3 +>>> print(sqlite3.sqlite_version) +3.24.0 +``` + +- Or maybe I should just bite the bullet and migrate this to PostgreSQL, as it [supports `UPSERT` since version 9.5](https://wiki.postgresql.org/wiki/UPSERT) and also seems to have my new favorite `LIMIT` and `OFFSET` +- I changed the syntax of the SQLite stuff and PostgreSQL is working flawlessly with psycopg2... hmmm. diff --git a/docs/2018-09/index.html b/docs/2018-09/index.html index a70c7c6ac..fc7a741ce 100644 --- a/docs/2018-09/index.html +++ b/docs/2018-09/index.html @@ -18,7 +18,7 @@ I’m testing the new DSpace 5.8 branch in my Ubuntu 18.04 environment and I " /> - + But when I deployed it on my Ubuntu 16.04 environment I realized Ubuntu’s SQLite is old and doesn’t support UPSERT, so my indexing doesn’t work…
  • Apparently UPSERT came in SQLite 3.24.0 (2018-06-04), and Ubuntu 16.04 has 3.11.0
  • Ok this is hilarious, I manually downloaded the libsqlite3 3.24.0 deb from Ubuntu 18.10 “cosmic” and installed it in Ubnutu 16.04 and now the Python indexer.py works
  • +
  • This is definitely a dirty hack, but the list of packages we use that depend on libsqlite3-0 in Ubuntu 16.04 are actually pretty few:
  • + + +
    # apt-cache rdepends --installed libsqlite3-0 | sort | uniq
    +  gnupg2
    +  libkrb5-26-heimdal
    +  libnss3
    +  libpython2.7-stdlib
    +  libpython3.5-stdlib
    +
    + + + +
    # python3
    +Python 3.5.2 (default, Nov 23 2017, 16:37:01) 
    +[GCC 5.4.0 20160609] on linux
    +Type "help", "copyright", "credits" or "license" for more information.
    +>>> import sqlite3
    +>>> print(sqlite3.sqlite_version)
    +3.24.0
    +
    + + diff --git a/docs/sitemap.xml b/docs/sitemap.xml index 97319b235..01937f3b0 100644 --- a/docs/sitemap.xml +++ b/docs/sitemap.xml @@ -4,7 +4,7 @@ https://alanorth.github.io/cgspace-notes/2018-09/ - 2018-09-24T16:24:35+03:00 + 2018-09-24T16:35:43+03:00 @@ -184,7 +184,7 @@ https://alanorth.github.io/cgspace-notes/ - 2018-09-24T16:24:35+03:00 + 2018-09-24T16:35:43+03:00 0 @@ -195,7 +195,7 @@ https://alanorth.github.io/cgspace-notes/tags/notes/ - 2018-09-24T16:24:35+03:00 + 2018-09-24T16:35:43+03:00 0 @@ -207,13 +207,13 @@ https://alanorth.github.io/cgspace-notes/posts/ - 2018-09-24T16:24:35+03:00 + 2018-09-24T16:35:43+03:00 0 https://alanorth.github.io/cgspace-notes/tags/ - 2018-09-24T16:24:35+03:00 + 2018-09-24T16:35:43+03:00 0