<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Hasura on oinume journal</title>
    <link>https://blog-lampetty-net.web.app/categories/hasura/</link>
    <description>Recent content in Hasura 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/categories/hasura/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>
    
    <item>
      <title>HasuraをDokku上で動かす</title>
      <link>https://blog-lampetty-net.web.app/posts/hasura-on-dokku/</link>
      <pubDate>Sat, 30 Dec 2023 15:00:00 +0900</pubDate>
      
      <guid>https://blog-lampetty-net.web.app/posts/hasura-on-dokku/</guid>
      <description>
        
          
            &lt;p&gt;&lt;a href=&#34;https://journal.lampetty.net/entry/install-dokku-on-vps&#34;&gt;VPS上にDokkuを構築した&lt;/a&gt;ので、そこに&lt;a href=&#34;https://hasura.io/&#34;&gt;Hasura&lt;/a&gt;を動かしてみるテスト。Hasuraとは簡単に言うとPostgreSQLのテーブルスキーマからGraphQLサーバーを構築してくれるミドルウェア。&lt;/p&gt;
&lt;p&gt;前提として、Dokkuはすでに構築済みとする。(自分の場合はUbuntu 22.04 上にDokku 0.32.3を構築済み)&lt;/p&gt;
&lt;h2 id=&#34;手順&#34;&gt;手順&lt;/h2&gt;
&lt;p&gt;まずは最初に&lt;code&gt;hasura&lt;/code&gt;という名前のアプリケーションを作成する&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ dokku apps:create hasura
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;次に、HasuraのためのPostgreSQL databaseを建てる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ dokku postgres:create hasura-db
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       Waiting &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; container to be ready
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       Creating container database
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       Securing connection to &lt;span class=&#34;nv&#34;&gt;database&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;=====&lt;/span&gt;&amp;gt; Postgres container created: hasura-db
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;=====&lt;/span&gt;&amp;gt; hasura-db postgres service information
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       Config dir:          /var/lib/dokku/services/postgres/hasura-db/data
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       Config options:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       Data dir:            /var/lib/dokku/services/postgres/hasura-db/data
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       Dsn:                 postgres://postgres:&amp;lt;redacted&amp;gt;@dokku-postgres-hasura-db:5432/hasura_db
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       Exposed ports:       -
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       Id:                  272a6f8b722310887317b3d7e10821ed3cfcc88dae7911945c10590be338c09c
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       Internal ip:         172.17.0.4
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       Initial network:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       Links:               -
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       Post create network:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       Post start network:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       Service root:        /var/lib/dokku/services/postgres/hasura-db
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       Status:              running
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       Version:             postgres:15.4
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;上で構築したhasura-dbをhasuraアプリケーションにリンクする。ただし、この時点ではまだ&lt;code&gt;hasura&lt;/code&gt;はアプリケーションの設定がされていないので&lt;code&gt;App image (dokku/hasura:latest) not found&lt;/code&gt;のエラーが出るけどOK。&lt;/p&gt;
          
          
        
      </description>
    </item>
    
  </channel>
</rss>