跳转到主要内容

允许将数据集(推送)到另一个存储库

项目描述

CKAN插件,用于将数据集同步到另一个CKAN实例。

此插件提供了一种将数据集同步到另一个CKAN实例的机制。如果数据集在其自定义元数据中将“syndicate”标志设置为“True”,则数据集的任何更新都将反映在同步版本中。同步数据集中的资源存储为原始资源中的URL。您必须拥有目标CKAN实例用户的API密钥。请参阅下面的配置设置部分。

插件可以通过实现动作update_dataset_for_syndication并修改dataset_dict值来修改要同步发送的数据。如果在CKAN实例之间架构不同,这将很有用。

要求

  • 与CKAN 2.5.2进行了测试

  • 需要 celery

  • 要使用SSL工作,需要 pyOpenSSLndg-httpsclientpyasn1

  • 通过supervisor在生产环境中运行Celery可能很有用

安装

要安装ckanext-syndicate

  1. 激活您的CKAN虚拟环境,例如

    . /usr/lib/ckan/default/bin/activate
  2. 将ckanext-syndicate Python包安装到您的虚拟环境中

    pip install ckanext-syndicate
  3. syndicate 添加到您的 CKAN 配置文件中的 ckan.plugins 设置(默认配置文件位于 /etc/ckan/default/production.ini)。

  4. 重启 CKAN。例如,如果您在 Ubuntu 上使用 Apache 部署了 CKAN

    sudo service apache2 reload
  5. 您还需要设置 celery。在开发环境中,您可以使用以下 paster 命令在虚拟环境中完成此操作

    paster --plugin=ckan celeryd run -c /etc/ckan/default/development.ini
  6. 在生产环境中,可以通过 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 上注册项目

  1. 创建项目的源分发

    python setup.py sdist
  2. 注册项目

    python setup.py register
  3. 将源分发上传到 PyPI

    python setup.py sdist upload
  4. 使用 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,请按照以下步骤操作

  1. setup.py 文件中更新版本号。有关如何选择版本号的说明,请参阅 PEP 440

  2. 创建新版本的源分发

    python setup.py sdist
  3. 将源分发上传到 PyPI

    python setup.py sdist upload
  4. 使用 setup.py 文件中的版本号在 GitHub 上标记项目的最新版本。例如,如果 setup.py 中的版本号为 0.0.2,则执行

    git tag 0.0.2
    git push --tags

项目详细信息


下载文件

下载适合您平台的应用程序。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分发

ckanext-syndicate-1.0.1.tar.gz (11.6 kB 查看哈希值

上传时间

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面