将SQL数据库的数据导出到一组文件格式。
项目描述
datafreeze 用于创建SQL数据库的静态提取,用于交互式Web应用程序。SQL数据库是管理关系数据的好方法,但将它们暴露在Web上以驱动数据应用程序可能会很麻烦。通常,并不真正需要合适的数据库功能,几个静态JSON文件和一些JavaScript也可以达到相同的效果。尽管如此,手动导出JSON(或使用自定义脚本)也可能变成一个混乱的过程。
使用 datafreeze,导出是在类似于Makefile的描述中脚本化的,这使得它们易于重复和复制。
安装
安装 datafreeze 最简单的方法是从Python包索引中使用 pip 获取它
pip install datafreeze
基本用法
调用DataFreeze很简单,应用程序通过冻结文件作为其参数调用
datafreeze Freezefile.yaml
冻结文件可以是JSON或YAML格式。Freezefile中指示的数据库URI也可以通过命令行覆盖
datafreeze --db sqlite:///foo.db Freezefile.yaml
示例Freezefile.yaml
冻结文件由一系列脚本查询和它们的输出应如何处理的说明组成。一个示例可能看起来像这样
common:
database: "postgresql://user:password@localhost/operational_database"
prefix: my_project/dumps/
format: json
exports:
- query: "SELECT id, title, date FROM events"
filename: "index.json"
- query: "SELECT id, title, date, country FROM events"
filename: "countries/{{country}}.csv"
format: csv
- query: "SELECT * FROM events"
filename: "events/{{id}}.json"
mode: item
- query: "SELECT * FROM events"
filename: "all.json"
format: tabson
相同的JSON配置可以在本存储库中找到。
详细选项
冻结文件包含两个主要部分,即通用和导出。两者都接受许多相同的参数,其中导出指定导出列表,而通用定义了一些共享属性,例如数据库连接字符串。
以下选项被识别:
database是一个数据库URI,包括数据库类型、用户名和密码、主机名和数据库名。有效的数据库类型包括sqlite、mysql和postgresql(需要psycopg2)。
prefix指定所有提取文件的公共根目录。
format标识要生成的格式,支持csv、json和tabson。tabson是一种紧凑的JSON表示,其中行不是由对象表示,而是由值列表表示。
query需要是一个有效的SQL语句。所有选定的字段都将成为输出中的键或列,因此如果预期有任何重叠,定义适当的别名可能是有意义的。
mode指定查询输出是否应组合成单个文件(list)或为每行结果生成一个文件(item)。
filename是输出文件名,附加到prefix。所有出现的{{field}}都会扩展到字段值,以便允许通过主键生成文件名等。在列表模式下,可以使用模板将记录分组到几个桶中,例如按国家或类别。
wrap可用于指定输出是否应包含在JSON输出的results散列中。对于列表模式输出,默认为true,对于item模式,默认为false。
贡献者
dataset由Friedrich Lindenberg、Gregor Aisch和Stefan Wehrmeyer编写和维护。我们站在巨人的肩膀上。
项目详细信息
下载文件
下载适用于您平台的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。
源分发
构建分发
datafreeze-0.1.0.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e9611df781b34d7183d06755979014230216ce9c274360dd186a9a20fcca317f |
|
MD5 | ccbde0ffaeffa3d9a802b7704aa38e21 |
|
BLAKE2b-256 | 82c3e90b668e08a185712f06467943284a4fc817eb689a262e16c383bef70a08 |
数据冻结-0.1.0-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0a7ff7e5e92c01d7b74cfff294618b799dd6e5698ad585be60877fc807bc5d26 |
|
MD5 | 526c0f63f6250db6d3a22ccd878ed4cc |
|
BLAKE2b-256 | e0419e86652a1293a0c4664e5aa34a8f5b1a2fe5a04f7cae287ae79385f65ec0 |