将一个目录中的所有文件构建成一个SQLite数据库
项目描述
datasette-build
将一个目录中的所有文件构建成一个SQLite数据库
⚠️ 早期预览版。关于这个工具的所有内容都可能发生变化。
安装
使用pip
或pipx
安装此工具
pipx install datasette-build
这将提供datasette-build
CLI应用程序。
您还可以将其作为Datasette插件安装。首先安装Datasette,然后运行
datasette install datasette-build
这将提供一个与datasette-build
CLI应用程序功能相同的datasette build ...
命令。
或者,您可以将它作为sqlite-utils的插件安装。安装后,运行此命令
sqlite-utils install datasette-build
现在您可以通过sqlite-utils build ...
访问该工具
用法
datasette-build
(或datasette build
或sqlite-utils build
)命令接受两个参数:SQLite数据库文件的路径和包含要加载到该数据库中的文件的目录路径
datasette-build mydatabase.db myfiles/
myfiles/
文件夹可以包含CSV、TSV和JSON文件的混合。每个文件都将加载到mydatabase.db
SQLite数据库中的一个表。
如果数据库文件不存在,则将创建数据库文件。
考虑一个类似于以下内容的myfiles/cities.csv
文件
id,name,latitude,longitude,country
nyc,New York City,40.7128,-74.006,US
lon,London,51.5074,-0.1278,GB
tok,Tokyo,35.6895,139.6917,JP
par,Paris,48.8566,2.3522,FR
ber,Berlin,52.52,13.405,DE
syd,Sydney,-33.8688,151.2093,AU
cai,Cairo,30.0444,31.2357,EG
rio,Rio de Janeiro,-22.9068,-43.1729,BR
mos,Moscow,55.7558,37.6173,RU
mum,Mumbai,19.076,72.8777,IN
由于这个文件有id
列,因此表的键将设置为id
。如果没有id
列,则不会定义主键。
一个类似于以下内容的myfiles/counties.tsv
文件
id name population
US United States 331002651
GB United Kingdom 67886011
JP Japan 126476461
FR France 65273511
DE Germany 83783942
AU Australia 25499884
EG Egypt 102334404
BR Brazil 212559417
RU Russia 145934462
IN India 1380004385
以及一个类似于以下内容的myfiles/museums.json
文件
[
{
"id": 1,
"name": "Metropolitan Museum of Art",
"city_id": "nyc"
},
{
"id": 2,
"name": "British Museum",
"city_id": "lon"
}
]
运行datasette-build mydatabase.db myfiles/
将在包含三个表:cities
、counties
和museums
的SQLite数据库文件中创建一个SQLite数据库文件。其模式如下所示
CREATE TABLE [museums] (
[id] INTEGER PRIMARY KEY,
[name] TEXT,
[city_id] TEXT
);
CREATE TABLE "cities" (
[id] TEXT PRIMARY KEY,
[name] TEXT,
[latitude] FLOAT,
[longitude] FLOAT,
[country] TEXT
);
CREATE TABLE "countries" (
[id] TEXT PRIMARY KEY,
[name] TEXT,
[population] INTEGER
);
开发
要在本地设置此插件,首先检出代码。然后创建一个新的虚拟环境
cd datasette-build
python3 -m venv venv
source venv/bin/activate
现在安装依赖项和测试依赖项
pip install -e '.[test]'
要运行测试
pytest
项目详情
下载文件
下载适用于您平台文件。如果您不确定选择哪个,请了解有关安装包的更多信息。