Skip to main content

A MongoDB DataStoreBackend implementation, that supports data citation.

Project description

Build Status PyPI version Supported Python versions Development Status

ckanext-mongodatastore

This plugin provides a datastore implementation for CKAN, based on MongoDB for storing data records. One aspect of this implementation is, that it follows the RDA Recommendations for Data Citation. This guarantiees citability for every query that is submited to the datastore.

As this extension provides an implementation of the IDatastoreBackend, therefore the DataStore API can be used as before.

Requirements

This CKAN extension is tested with CKAN 2.9.0 running on Python 3.8.2.

To run this plugin beside an CKAN a mongo and a postgre database is required. The mongo database is needed for storing the data records and the postgre database is used as a querystore, described in the RDA Recommendations. For both instances a connection string has to be set in the CKAN config file.

Installation

To install ckanext-mongodatastore:

  1. Install MongoDB

  2. If not already existing, a QueryStore database has to be created::

sudo -u postgres createuser -S -D -R -P querystore
sudo -u postgres createdb -O querystore querystore -E utf-8
  1. Activate your CKAN virtual environment, for example::

. /usr/lib/ckan/default/bin/activate

  1. Install the ckanext-mongodatastore Python package into your virtual environment:

pip install ckanext-mongodatastore

  1. Set the ckanext-mongodatastore specific config settings the CKAN configuration file (by default the config file is located at /etc/ckan/default/production.ini).

  2. Add mongodatastore to the ckan.plugins setting in your CKAN config file (by default the config file is located at /etc/ckan/default/production.ini).

  3. Initialize the query store with the custom click command create_schema ckan -c "/etc/ckan/default/production.ini" create_schema

  4. Restart CKAN. For example if you've deployed CKAN with Apache on Ubuntu::

sudo service apache2 reload

Config Settings

For running the MongoDb datastore two settings have to configured in your CKAN's configuration file::

Name Description Default
ckanext.mongodatastore.mongodb_url URL pointing to the MongoDB instance
ckanext.mongodatastore.querystore_url URL pointing to the QueryStore database
ckanext.mongodatastore.sharding_enabled If a sharded MongoDB instance is used, the sharding feature has to be enabled False
ckanext.mongodatastore.database_name Name of the MongoDB database, that contains all resource collections CKAN_Datastore

Development Installation

To install ckanext-mongodatastore for development, activate your CKAN virtualenv and do::

git clone https://github.com/fwoerister/ckanext-mongodatastore.git
cd ckanext-mongodatastore
python setup.py develop
pip install -r dev-requirements.txt

Running the Tests

To run the tests, do::

nosetests --nologcapture --with-pylons=test.ini

To run the tests and produce a coverage report, first make sure you have coverage installed in your virtualenv (pip install coverage) then run::

nosetests --nologcapture --with-pylons=test.ini --with-coverage --cover-package=ckanext.mongodatastore --cover-inclusive --cover-erase --cover-tests

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ckanext-mongodatastore-0.4.tar.gz (460.7 kB view hashes)

Uploaded Source

Built Distribution

ckanext_mongodatastore-0.4-py2-none-any.whl (472.0 kB view hashes)

Uploaded Python 2

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page