Customizations for DESQ. This CKAN plugin is not designed to be generic or easily applicable to other data portals. It requires specific changes to the CKAN configuration and the Solr schema.
- Python 3.9
- Ubuntu packages required by PyICU:
sudo apt install libicu-dev python3-icu pkg-config
- CKAN 2.9.5 fork, installed with:
pip install -e 'git+https://github.com/whiskyechobravo/ckan.git@desq-2.9.5#egg=ckan[requirements]'
Tested under Ubuntu 20.04 and 22.04.
-
Activate your CKAN virtualenv, for example:
. /usr/lib/ckan/default/bin/activate
-
Install ckanext-desq in the virtualenv:
pip install -e 'git+https://github.com/whiskyechobravo/ckanext-desq.git#egg=ckanext-desq'
That will also install some dependencies (listed in
ckanext-desq/setup.cfg
). -
Use
config/ckan/sample.ini
as a replacement to/etc/ckan/default/ckan.ini
, but edit the following settings:beaker.session.secret
sqlalchemy.url
api_token.jwt.encode.secret
api_token.jwt.decode.secret
solr_url
solr_user
solr_password
licenses_group_url
(must link tockanext-desq/config/ckan/licenses.json
)ckan.storage_path
(if need to change from/var/lib/ckan/default
)
-
Copy the required webfonts to the
ckanext/desq/public/webfonts/
directory. -
Restart CKAN. Assuming it's installed as a systemd service:
sudo service ckan restart
References:
- https://docs.ckan.org/en/2.9/maintaining/database-management.html#import-and-export
- https://docs.ckan.org/en/2.9/maintaining/cli.html#search-index-rebuild-search-index
Backup:
sudo -u postgres pg_dump --format=custom -d ckan_default > desq-$(date +%Y%m%d-%H%M).pgdump
Restore (replace path to .ini
file if necessary):
ckan -c /etc/ckan/default/ckan.ini db clean
sudo -u postgres pg_restore --clean --if-exists -d ckan_default < desq-YYYYMMDD-HHMM.pgdump
ckan -c /etc/ckan/default/ckan.ini search-index rebuild
References:
- https://docs.ckan.org/en/2.9/contributing/i18n.html
- https://docs.ckan.org/en/2.9/extensions/translating-extensions.html
Creating the .pot
file:
python setup.py extract_messages
Creating a .po
file for a locale:
python setup.py init_catalog --locale LANG
Updating existing translations:
python setup.py update_catalog --locale LANG
Compile translations into a .mo
file:
python setup.py compile_catalog --locale LANG
The binary .mo
file is commited to the repository for ease of deployment.