Fedora消息总线(fedmsg)的存储消费者
项目描述
这是datanommer。它只包含一个fedmsg消费者,将每条消息存入一个sqlalchemy数据库。
还有一些命令行工具可以从数据库中导出信息。
构建状态
分支 |
状态 |
---|---|
master |
|
develop |
试试看
使用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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a9d6b78dd454d39bd772a59dc2e294743b862eafb53f03312460386e4ee50f28 |
|
MD5 | 31b37716a22a3e5f6dd9e33546b0f6dc |
|
BLAKE2b-256 | d80a018a1484957342d8702b1f060d982673bcddca0e6ce439177a80fe904648 |