跳转到主要内容

Fedora消息总线(fedmsg)的存储消费者

项目描述

这是datanommer。它只包含一个fedmsg消费者,将每条消息存入一个sqlalchemy数据库。

还有一些命令行工具可以从数据库中导出信息。

构建状态

分支

状态

master

Build Status - master branch

develop

Build Status - develop branch

试试看

使用virtualenv

强烈建议使用虚拟环境,尽管这不是强制要求。使用virtualenvwrapper可以隔离您的开发环境。您将能够从git checkout的最新datanommer版本进行工作,而不会破坏系统上安装的datanommer副本。

通过以下方式安装virtualenvwrapper:

$ sudo yum install python-virtualenvwrapper

注意:如果您决定不使用python-virtualenvwrapper,您始终可以使用Fedora中的最新更新fedmsg和datanommer。如果您这样做,请忽略这些说明中的所有mkvirtualenv和workon命令。您可以使用以下命令安装fedmsg:sudo yum install fedmsg,以及datanommer使用以下命令:sudo yum install datanommer

开发依赖项

获取

$ sudo yum install python-virtualenv openssl-devel zeromq-devel gcc

注意:如果提交补丁,您应检查贡献指南中的样式规范。

设置virtualenv

创建一个新的空virtualenv并从pypi安装所有依赖项

$ mkvirtualenv datanommer
(datanommer)$ cdvirtualenv

注意:如果mkvirtualenv命令不可用,请尝试在Fedora上使用source /usr/bin/virtualenvwrapper.sh(如果您不在Fedora上运行,可能需要稍微调整命令)。您还可以将其添加到您的~/.bashrc文件中,以便自动运行。

克隆上游git仓库

源代码位于github上。

获取fedmsg

(datanommer)$ git clone https://github.com/ralphbean/fedmsg.git

获取datanommer

(datanommer)$ git clone https://github.com/ralphbean/datanommer.git

设置fedmsg

(datanommer)$ cd fedmsg

为了开发,请避免编辑master分支。检出develop分支

(datanommer)$ git checkout develop
(datanommer)$ python setup.py develop

切换到datanommer

(datanommer)$ cd ../datanommer

请注意,您应该按以下顺序设置三个包:“datanommer.models”,“datanommer.commands”和“datanommer.consumer”。依次进入三个子文件夹,并输入以下内容:

(datanommer)$ git checkout develop
(datanommer)$ python setup.py develop

创建datanommer数据库

(datanommer)$ datanommer-create-db

试用datanommer

打开三个终端以尝试命令。在每个终端中,使用以下命令激活您的virtualenv:

$ workon datanommer

在一个终端中,输入

(datanommer)$ fedmsg-relay

在另一个终端中,输入

(datanommer)$ fedmsg-hub

在第三个终端中,发出一条消息,该消息被中继器捕获,重新广播,由datanommer消费,并插入到datanommer.db中

(datanommer)$ echo "this is a test" | fedmsg-logger

尝试这些命令。消息是否已存储?

(datanommer)$ datanommer-stats

LoggerMessage应包含条目。

(datanommer)$ datanommer-dump

检查数据库

(datanommer)$ sqlite3 datanommer.db
> select* from messages;

您应该看到类似以下行:

1|1|org.fedoraproject.dev.logger.log|2012-11-30 23:33:12.077429|||{"log": "this is a test"}

使用Alembic进行迁移

当数据库模型发生变化时,我们使用alembic来保留数据。Alembic位于models目录中

(datanommer)$ cd datanommer.models

要检查当前模型版本

(datanommer)$ alembic current

如果您的模型是最新的,您应该看到

INFO  [alembic.migration] Context impl SQLiteImpl.
INFO  [alembic.migration] Will assume transactional DDL.
Current revision for sqlite:///../datanommer.db: 198447250956 -> ae2801c4cd9 (head), add category column

如果您得到的结果是

INFO  [alembic.migration] Context impl SQLiteImpl.
INFO  [alembic.migration] Will assume transactional DDL.
Current revision for sqlite:///../datanommer.db: None

那么使用以下命令迁移到最新版本

(datanommer)$ alembic upgrade head

您应该看到

INFO  [alembic.migration] Context impl SQLiteImpl.
INFO  [alembic.migration] Will assume transactional DDL.
INFO  [alembic.migration] Running upgrade None -> 198447250956
INFO  [alembic.migration] Running upgrade 198447250956 -> ae2801c4cd9

项目详情


下载文件

下载适合您的平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

datanommer-0.3.0.tar.gz (15.9 kB 查看哈希值)

上传时间

支持者