允许将数据集(推送)到另一个存储库
项目描述
CKAN插件,用于将数据集同步到另一个CKAN实例。
此插件提供了一种将数据集同步到另一个CKAN实例的机制。如果数据集在其自定义元数据中将“syndicate”标志设置为“True”,则数据集的任何更新都将反映在同步版本中。同步数据集中的资源存储为原始资源中的URL。您必须拥有目标CKAN实例用户的API密钥。请参阅下面的配置设置部分。
插件可以通过实现动作update_dataset_for_syndication
并修改dataset_dict
值来修改要同步发送的数据。如果在CKAN实例之间架构不同,这将很有用。
要求
与CKAN 2.5.2进行了测试
需要
celery
要使用SSL工作,需要
pyOpenSSL
、ndg-httpsclient
和pyasn1
通过supervisor在生产环境中运行Celery可能很有用
安装
要安装ckanext-syndicate
激活您的CKAN虚拟环境,例如
. /usr/lib/ckan/default/bin/activate
将ckanext-syndicate Python包安装到您的虚拟环境中
pip install ckanext-syndicate
将 syndicate 添加到您的 CKAN 配置文件中的 ckan.plugins 设置(默认配置文件位于 /etc/ckan/default/production.ini)。
重启 CKAN。例如,如果您在 Ubuntu 上使用 Apache 部署了 CKAN
sudo service apache2 reload
您还需要设置 celery。在开发环境中,您可以使用以下 paster 命令在虚拟环境中完成此操作
paster --plugin=ckan celeryd run -c /etc/ckan/default/development.ini
在生产环境中,可以通过 supervisor 配置 celery,例如 /etc/supervisor/conf.d/celery.conf
[program:celery] autorestart=true autostart=true command=/usr/lib/ckan/default/bin/paster --plugin=ckan celeryd --config=/etc/ckan/default/production.ini numprocs=1 priority=998 redirect_stderr=true startsecs=10 stderr_logfile=/var/log/celeryd.log stdout_logfile=/var/log/celeryd.log stopwaitsecs=600 user=www-data
配置设置
# The URL of the site to be syndicated to ckan.syndicate.ckan_url = https://data.humdata.org/ # The API key of the user on the syndicated site ckan.syndicate.api_key = 9efdd954-c643-444a-97a1-c9c374cef861 # The custom metadata flag used for syndication # (optional, default: syndicate). ckan.syndicate.flag = syndicate_to_hdx # The custom metadata field to store the syndicated dataset ID # on the original dataset # (optional, default: syndicated_id) ckan.syndicate.id = hdx_id # A prefix to apply to the name of the syndicated dataset # (optional, default: ) ckan.syndicate.name_prefix = my-prefix # The name of the organization on the target CKAN to use when creating # the syndicated datasets # (optional, default: None) ckan.syndicate.organization = my-org-name
开发安装
要为开发安装 ckanext-syndicate,激活您的 CKAN 虚拟环境,然后执行
git clone https://github.com/aptivate/ckanext-syndicate.git cd ckanext-syndicate python setup.py develop pip install -r dev-requirements.txt
另请参阅安装说明
运行测试
要运行测试,请执行
nosetests --nologcapture --with-pylons=test.ini
要运行测试并生成覆盖率报告,请确保您已在虚拟环境中安装了 coverage(pip install coverage),然后运行
nosetests --nologcapture --with-pylons=test.ini --with-coverage --cover-package=ckanext.syndicate --cover-inclusive --cover-erase --cover-tests
在 PyPI 上注册 ckanext-syndicate
ckanext-syndicate 应该可以在 PyPI 上作为 https://pypi.python.org/pypi/ckanext-syndicate 获取。如果该链接无效,则可以按照以下步骤首次在 PyPI 上注册项目
创建项目的源分发
python setup.py sdist
注册项目
python setup.py register
将源分发上传到 PyPI
python setup.py sdist upload
使用 setup.py 文件中的版本号在 GitHub 上标记项目的第一个版本。例如,如果 setup.py 中的版本号为 0.0.1,则执行
git tag 0.0.1 git push --tags
发布 ckanext-syndicate 的新版本
ckanext-syndicate 可在 PyPI 上作为 https://pypi.python.org/pypi/ckanext-syndicate 获取。要发布新版本到 PyPI,请按照以下步骤操作
在 setup.py 文件中更新版本号。有关如何选择版本号的说明,请参阅 PEP 440
创建新版本的源分发
python setup.py sdist
将源分发上传到 PyPI
python setup.py sdist upload
使用 setup.py 文件中的版本号在 GitHub 上标记项目的最新版本。例如,如果 setup.py 中的版本号为 0.0.2,则执行
git tag 0.0.2 git push --tags
项目详细信息
ckanext-syndicate-1.0.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | efb84c6c377dabff853b92f342a49553b9e9387b8b9f0af4f670ca5839736f49 |
|
MD5 | 1d94eb9c0c453a93f96a355958100a39 |
|
BLAKE2b-256 | 35c290463dc1f5da93e880194f7d1065c377ebdb3c6078450d41a45a70de9d6b |