sqlite-generate 作者:simonw

标星

README 源代码

sqlite-generate

PyPI Changelog License

用于生成演示 SQLite 数据库的工具

安装

使用 pip 安装此插件

$ pip install sqlite-generate

演示

您可以在 Datasette 中查看使用此命令生成的数据库演示,访问地址为 https://sqlite-generate-demo.datasette.io/

该演示使用以下命令生成

sqlite-generate demo.db --seed seed --fts --columns=10 --fks=0,3 --pks=0,2

用法

要生成一个名为 data.db 的 SQLite 数据库文件,其中包含 10 个随机命名的表,请运行以下命令

sqlite-generate data.db

您可以使用 --tables 选项生成不同数量的表

sqlite-generate data.db --tables 20

您可以多次对同一个数据库文件运行此命令,以继续添加新表,每次生成一批表时可以使用不同的设置。

默认情况下,每个表将包含 0 到 200 之间的随机行数。您可以使用 --rows 选项进行自定义

sqlite-generate data.db --rows 20

这将为每个表插入 20 行。

sqlite-generate data.db --rows 500,2000

这将为每个表插入 500 到 2000 之间的随机行数。

每个表将有 5 列。您可以使用 --columns 更改此设置

sqlite-generate data.db --columns 10

--columns 也可以接受一个范围

sqlite-generate data.db --columns 5,15

您可以使用 --seed 选项控制使用的随机数种子。这将确保多次运行此工具时创建完全相同的数据库文件

sqlite-generate data.db --seed=myseed

默认情况下,每个表将包含 0 到 2 个指向其他表的外键列。您可以使用 --fks 选项(可以是单个数字或范围)来控制此设置

sqlite-generate data.db --columns=20 --fks=5,15

每个表将有一个名为 id 的主键列。您可以使用 --pks= 选项更改每个表上的主键列数量。将其设置为 0 以生成 rowid 表。将其增加到 1 以上以生成复合主键的表。或者使用范围来获取不同主键布局的随机选择

sqlite-generate data.db --pks=0,2

要为所有文本类型的列配置 SQLite 全文搜索,请使用 --fts

sqlite-generate data.db --fts

默认情况下这将使用 FTS5。要改用 FTS4,请使用 --fts4

开发

要为此工具做贡献,首先克隆代码。然后创建一个新的虚拟环境

cd sqlite-generate
python -mvenv venv
source venv/bin/activate

或者如果您正在使用 pipenv

pipenv shell

现在安装依赖项和测试

pip install -e '.[test]'

要运行测试

pytest