はじめに
hkob の雑記録の第353回目は、プロパティ要素の Property object と Property schema object について改訂していきます。本記事は2025年ユカスタマスの19日目(2023年ユカスタマスの750日目)の記事になります。
データベース → データソースへの変更
データソースが分離するまでは、プロパティはデータベースが持っていました。2025年9月のアップデートにより、データベースは単なるコンテナとなり、プロパティはデータソースが持つようになりました。実際に Property object の説明ページを見ると、以下のように Data source properties となっています。このため、データベースと書かれている部分については、すべてデータソースへの変更をしておきます。

P.80 Property object / Property schema object
Property object や Property schema object は DataSource から取得するように変更されています。JSON を取得する部分でも DataSource.find で取得したデータソースから JSON データを確認していきます。
# プロパティ確認用データソースを取得 ds = DataSource.find "プロパティ確認用データソースの ID" => NotionRubyMapping::DataSource-2bcd8e4e98ab8161b04c000bdf67e0dd # データソースプロパティが含まれた Ruby オブジェクト (Property object 確認用) dps = ds.json["properties"] => {"日付" => ...
dps の名前自体は変わらないので、この後はしばらく変更はありません。この先 P.81 では設定値が存在しないプロパティ一覧の表があります。ここには、初版出版後に追加されたボタン (button)、 場所 (place) 、有効期限 (verification) を追加しています。
| プロパティ | プロパティの型 |
|---|---|
| ボタン | button |
| 作成者 | created_by |
| 作成日時 | created_time |
| 日付 | date |
| メール | |
| ファイル&メディア | files |
| 最終更新者 | last_edited_by |
| 最終更新日時 | last_edited_time |
| ユーザー | people |
| 電話 | phone_number |
| 場所 | place |
| テキスト | rich_text |
| ステータス | status |
| タイトル | title |
| URL | url |
| 有効期限 | verification |
これ以外のプロパティの解説は変更がありませんが、リレーションについては接続先がデータベースからデータソースに変更になるため、data_source_id についての記載を追加しました。この時、これまでの database_id を置き換えるのではなく、data_source_id が追加される形になっています。
print JSON.pretty_generate(dps.slice "片方向リレーション先") { "片方向リレーション先": { "id": "dQd%7B", "name": "片方向リレーション先", "type": "relation", "relation": { "database_id": "2bcd8e4e-98ab-8157-8b89-c6bc1d388a44", "data_source_id": "2bcd8e4e-98ab-81c7-a599-000b85efd9ad", "type": "single_property", "single_property": { } } } }=> nil
print JSON.pretty_generate(dps.slice "双方向リレーション先") { "双方向リレーション先": { "id": "%7DO%3D%7D", "name": "双方向リレーション先", "type": "relation", "relation": { "database_id": "2bcd8e4e-98ab-8192-abbb-ef444a9aa42f", "data_source_id": "2bcd8e4e-98ab-819d-ba17-000b2390ab72", "type": "dual_property", "dual_property": { "synced_property_name": "プロパティ確認用", "synced_property_id": "P%5Dde" } } } }=> nil
ID property の追加
設定値が存在する新しいプロパティとして ID があります。ここについては以下のように文章を追加しました。
ID の型は
"unique_id"となります。"unique_id"キーオブジェクトには、"prefix"キー値のみが含まれます。この例では prefix を設定していなかったので、null が入っています。print JSON.pretty_generate(dps.slice "ID") { "ID": { "id": "xl%7CF", "name": "ID", "description": null, "type": "unique_id", "unique_id": { "prefix": null } } }=> nilProperty schema object は
"unique_id"キーオブジェクトだけが格納されます。{ "ID": { "unique_id": { "prefix": "TASK" } } }
おわりに
今回は、プロパティ要素のうち Property object と Property schema object の修正について解説しました。基本的にデータベースからデータソースへの変更と、初版から追加されたプロパティの解説を記載しました。