datasette-init 作者 simonw

收藏

README 源代码

datasette-init

PyPI Changelog License

确保特定表和视图在启动时存在

安装

在与 Datasette 相同的环境中安装此插件。

$ pip install datasette-init

用法

此插件通过 metadata.json(或 metadata.yaml)进行配置。

创建表

添加类似这样的块,指定您希望确保存在的表

{
  "plugins": {
    "datasette-init": {
      "my_database": {
        "tables": {
          "dogs": {
            "columns": {
              "id": "integer",
              "name": "text",
              "age": "integer",
              "weight": "float"
            },
            "pk": "id"
          }
        }
      }
    }
  }
}

任何尚不存在的表将在 Datasette 初次启动时创建。

有效的列类型包括 "integer""text""float""blob"

"pk" 是可选的,用于定义主键。要定义复合主键(跨多个列),请在此处使用列名列表

    "pk": ["id1", "id2"]

创建视图

此插件也可用于创建视图

{
  "plugins": {
    "datasette-init": {
      "my_database": {
        "views": {
          "my_view": "select 1 + 1"
        }
      }
    }
  }
}

"views" 块中的每个视图将在数据库初次启动时创建。如果已存在同名视图,则会替换为新的定义。

开发

要在本地设置此插件,请先检出代码。然后创建新的虚拟环境

cd datasette-init
python3 -mvenv venv
source venv/bin/activate

如果您使用 pipenv

pipenv shell

现在安装依赖项和测试

pip install -e '.[test]'

运行测试

pytest