内容

update databases を使うことで、既存のデータベースを更新することができる。

サポートされているのは以下の更新作業。

ただし、Select や Multi-Select の namecolor の変更はサポートされていない。

検証

せっかくなので、編集中のものを外部に見せないように「開示?」というチェックボックスを作成する。後で、表のデータベースではフィルタをして、「開示?」にチェックが入ったものだけ表示するようにしてみる。スクリプトはこんな感じになる。

#!/bin/sh
curl --location --request PATCH '<https://api.notion.com/v1/databases/c63c00ad-201d-4bed-82b0-18dfca9b6ba0>' \\
--header 'Authorization: Bearer '"$NOTION_API_KEY"'' \\
--header 'Content-Type: application/json' \\
--header 'Notion-Version: 2021-08-16' \\
--data '{
  "properties": {
    "開示?": {
      "checkbox": {}
    }
  }
}'

返却された JSON はこちら。ちゃんと「開示?」チェックボックスが追加されている。

{
    "object": "database",
    "id": "c63c00ad-201d-4bed-82b0-18dfca9b6ba0",
    "cover": null,
    "icon": null,
    "created_time": "2021-11-08T21:41:00.000Z",
    "last_edited_time": "2021-11-10T05:43:00.000Z",
    "title": [
        {
            "type": "text",
            "text": {
                "content": "Changelogs",
                "link": null
            },
            "annotations": {
                "bold": false,
                "italic": false,
                "strikethrough": false,
                "underline": false,
                "code": false,
                "color": "default"
            },
            "plain_text": "Changelogs",
            "href": null
        }
    ],
    "properties": {
        "開示?": {
            "id": "%3BfBx",
            "name": "開示?",
            "type": "checkbox",
            "checkbox": {}
        },
        "日付": {
            "id": "%3CWbe",
            "name": "日付",
            "type": "date",
            "date": {}
        },
        "原題": {
            "id": "%3FMR%7D",
            "name": "原題",
            "type": "rich_text",
            "rich_text": {}
        },
        "URL": {
            "id": "o%3A~F",
            "name": "URL",
            "type": "url",
            "url": {}
        },
        "タグ": {
            "id": "tUJV",
            "name": "タグ",
            "type": "multi_select",
            "multi_select": {
                "options": [
                    {
                        "id": "fcb7bc23-a43d-4ff1-967f-db59a6125492",
                        "name": "ADDED",
                        "color": "green"
                    },
                    {
                        "id": "05f3b6b1-b6f1-49a2-bbdb-955cfb4d36f4",
                        "name": "IMPROVED",
                        "color": "gray"
                    }
                ]
            }
        },
        "名前": {
            "id": "title",
            "name": "名前",
            "type": "title",
            "title": {}
        }
    },
    "parent": {
        "type": "page_id",
        "page_id": "6a8efd66-5f69-4b39-96c3-089f680003e0"
    },
    "url": "<https://www.notion.so/c63c00ad201d4bed82b018dfca9b6ba0>"
}

Notion API Changelog まとめ