oinume journal

Scratchpad of what I learned

PostgreSQL + HasuraでUUID v7を生成できるようにする

2024年にRFC 9562としてUUID v7が標準化された。今までは主キーにUUID v4を使っていたけど、時間軸でソートできるUUID v7を使いたいと思ったのでメモ。

簡単に書くとPostgreSQLでUUID v7形式のUUIDを生成するには以下を行えば実現できる。

  • PostgreSQLにはUUID型が標準装備されているのでこれを使用する
  • postgres-uuid-generate-v7にあるUUID v7を生成するFUNCTIONを定義する
  • カラムを "id" uuid NOT NULL DEFAULT uuid_generate_v7() のように定義する

上記を踏まえてHasura consoleでUUID v7のFUNCTIONを定義して使えるようにするには、

  1. consoleからであればDATAタブのSQLを選択
  2. エディター部分にpostgres-uuid-generate-v7リポジトリのuuid_generate_v7.sqlの中身をそのままコピペ
  3. This is a migration にチェックを入れてMigration nameに適当な名前をつける

をやれば良い(以下スクショ参照)