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を定義して使えるようにするには、
- consoleからであれば
DATA
タブのSQL
を選択 - エディター部分にpostgres-uuid-generate-v7リポジトリの
uuid_generate_v7.sql
の中身をそのままコピペ This is a migration
にチェックを入れてMigration nameに適当な名前をつける
をやれば良い(以下スクショ参照)