<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>PostgreSQL on oinume journal</title>
    <link>https://blog-lampetty-net.web.app/tags/postgresql/</link>
    <description>Recent content in PostgreSQL on oinume journal</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ja</language>
    <lastBuildDate>Sat, 01 Mar 2025 12:00:00 +0900</lastBuildDate><atom:link href="https://blog-lampetty-net.web.app/tags/postgresql/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>PostgreSQL &#43; HasuraでUUID v7を生成できるようにする</title>
      <link>https://blog-lampetty-net.web.app/posts/define-uuid-v7-function-in-hasura/</link>
      <pubDate>Sat, 01 Mar 2025 12:00:00 +0900</pubDate>
      
      <guid>https://blog-lampetty-net.web.app/posts/define-uuid-v7-function-in-hasura/</guid>
      <description>
        
          
            &lt;p&gt;2024年に&lt;a href=&#34;https://datatracker.ietf.org/doc/rfc9562/&#34;&gt;RFC 9562&lt;/a&gt;としてUUID v7が標準化された。今までは主キーにUUID v4を使っていたけど、時間軸でソートできるUUID v7を使いたいと思ったのでメモ。&lt;/p&gt;
&lt;p&gt;簡単に書くとPostgreSQLでUUID v7形式のUUIDを生成するには以下を行えば実現できる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PostgreSQLには&lt;a href=&#34;https://www.postgresql.org/docs/current/datatype-uuid.html&#34;&gt;UUID型&lt;/a&gt;が標準装備されているのでこれを使用する&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/Betterment/postgresql-uuid-generate-v7&#34;&gt;postgres-uuid-generate-v7&lt;/a&gt;にあるUUID v7を生成するFUNCTIONを定義する&lt;/li&gt;
&lt;li&gt;カラムを &lt;code&gt;&amp;quot;id&amp;quot; uuid NOT NULL DEFAULT uuid_generate_v7()&lt;/code&gt; のように定義する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;上記を踏まえてHasura consoleでUUID v7のFUNCTIONを定義して使えるようにするには、&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;consoleからであれば&lt;code&gt;DATA&lt;/code&gt;タブの&lt;code&gt;SQL&lt;/code&gt;を選択&lt;/li&gt;
&lt;li&gt;エディター部分にpostgres-uuid-generate-v7リポジトリの&lt;code&gt;uuid_generate_v7.sql&lt;/code&gt;の中身をそのままコピペ&lt;/li&gt;
&lt;li&gt;&lt;code&gt;This is a migration&lt;/code&gt; にチェックを入れてMigration nameに適当な名前をつける&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;をやれば良い(以下スクショ参照)&lt;/p&gt;
          
          
        
      </description>
    </item>
    
  </channel>
</rss>