データベースのコンテナ化 : hkob の雑記録 (249)

はじめに

hkob の雑記録の第249回目は、NotionRubyMapping で対応しようとしているデータベースのコンテナ化について解説します。

公式によるリリース案内

Retreive a database のリファレンスページはこちらになります。

データベースがさらに強力になりました

1つのデータベースで複数のデータソースを親として設定できるようになり、リンクされたビューも追加できます。

1つの場所。多くのソース。あなたのワークフローの真のハブ。

今週から展開開始。

これに合わせて、Notion API の 2025-09-03 のリリース案内もありました。

新しいAPIバージョン2025-09-03をリリースしました。

これにより、データベース内で複数のデータソースのサポートが解除されます — これであなたの統合はNotionで可能なことに追いつけます。

データベースのサポートを強化するためにAPIバージョンをアップグレードしてください:

https://ntn.so/api-upgrade-guide

何が変わったのか?

これまで database と data source は 1:1 に対応していて、表示の際にデータベースの中にビューをたくさん設定することが可能でした。異なるデータベースを表示するには Linked view を使う必要がありました。このため、複数のデータベースを用いる複雑なパッケージになると、フルページの databases をまとめたデータベース置き場を用意し、表のページに Linked view を用意する形が一般的だったと思います。例えば今移行中の森高千里DB だとデータベース置き場はトリガの下にこんな形で隠してあります。

森高千里DB の Databases

今回、Database は新しくコンテナという形になりました。Database は複数の Data sources を含むことができる代わりに、プロパティなどの情報は保持しなくなりました。ユーザが Database を作成した場合には、Data sources を一つ含むだけの Database コンテナが作成されるので、一般のユーザが変化に気づくことはありません。

データベースビューのオプション

今回の変更によりデータベースビューのオプションは以下のように変わっています。Database settings の下に「データソースを管理する」というメニューが増えています。

データベースビューのオプション

「データベースを管理する」を選ぶと「データソースを追加」と「既存のデータソースをリンク」の二つを選ぶことができます。

データベースを管理する

A の横にある「…」をクリックすると Data source に対する処理メニューが出てきます。上の「データソースIDをコピー」をすると Notion API などで利用する data_source_id がコピーされます。

データソースのオプション

もう一つの「移動先」は Data source の移動ができるようです。試しにテストでもう一つ作成した「B」という Data source を先ほどの A に移動してみます。

移動先

A を選ぶと「データソースBを移動中」というダイアログが表示されました。ここでは「データソースと1個のビュー」「データソースのみ」のどちらを移動するかを選べます。

データソースBを移動中

これにより、B というデータソースが A を含む Database コンテナに入りました。

データソース一覧

一方、「データソースを追加」とした場合には、新しいデータソースといういつものデータベース作成の時に出てくるメニューが出てきます。

新しいデータソースを追加

新しい空のデータソースを選ぶと、「新しいデータソース」という名前の Data source が生成されます。また、Data source が複数になった場合には、「…」で「ゴミ箱に移動」メニューも追加されます。

追加後のデータソース一覧

最後に「既存のデータソースをリンク」を選ぶと次のようなダイアログが表示されます。

既存のデータソースをリンク

リンクを追加すると「C」のデータベースはそのまま残り、リンクビューとして追加されます。リンクなので↗︎がついているのでリンクであることがわかります。これはこれまでの Linked view と同じ機能です。

リンクされたデータソース

昨日の Create a database の補足

移行ガイドによると、Database を作成時に initial_data_source にこれまでの properties を記述すると、そのプロパティを設定した Data source を同時に作成してくれると書かれていました。しかし、昨日、Create a database のリファレンスを紹介した時に、initial_data_source の項目が入っていませんでした。Slack で問い合わせをしたところ、記述漏れだったとのことでその場で修正してくれました。現在は以下のように修正されています。

修正された Create a database のリファレンス

修正された Create a database のリファレンスはこちらになります。

developers.notion.com

おわりに

昨日のリファレンス更新に引き続き、Notion 自体の機能も更新されました。ただ、NotionRubyMapping のテストデータを置いているワークスペースにはまだこの機能が配信されていませんでした。そのため、Notion API でこの機能を使おうとすると「Adding data sources to existing databases is not available」というメッセージが出てきてしまっています。なんとか早く配信してほしいですね。

hkob.notion.site